Java tutorial
/** * Copyright (C) 2013 Red Hat, Inc. (jdcasey@commonjava.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.commonjava.cartographer.request; import com.fasterxml.jackson.annotation.JsonIgnore; import org.commonjava.maven.galley.model.Location; import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class RepositoryContentRequest extends MultiGraphRequest { private static final Set<String> DEFAULT_METAS = new HashSet<String>() { private static final long serialVersionUID = 1L; { add("sha1"); add("md5"); add("asc"); } }; public static final String NO_METAS = "none"; public static final Set<String> NO_METAS_SET = Collections.unmodifiableSet(Collections.singleton(NO_METAS)); private boolean multiSourceGAVs; private Set<ExtraCT> extras; private Set<String> metas; private Set<String> excludedSources; @JsonIgnore private transient Set<Location> excludedSourceLocations; @Override public String toString() { return String.format("RepositoryContentRequest [graphs=%s, workspaceId=%s, source-location=%s]", graphComposition, workspaceId, getSourceLocation()); } public Set<String> getExcludedSources() { return excludedSources; } public void setExcludedSources(final Set<String> excludedSources) { if (excludedSources == null) { return; } this.excludedSources = new TreeSet<String>(excludedSources); } public Set<ExtraCT> getExtras() { return extras; } public void setExtras(final Set<ExtraCT> extras) { if (extras == null) { return; } this.extras = new TreeSet<>(extras); } public Set<String> getMetas() { if (metas == null || metas.isEmpty()) { return DEFAULT_METAS; } else if (metas.size() == 1 && metas.contains(NO_METAS)) { return Collections.emptySet(); } else { return metas; } } public void setMetas(final Set<String> metas) { this.metas = metas == null || metas.isEmpty() ? null : new TreeSet<>(metas); } public Set<Location> getExcludedSourceLocations() { return excludedSourceLocations; } public void setExcludedSourceLocations(final Set<Location> excludedSourceLocations) { this.excludedSourceLocations = excludedSourceLocations; } public boolean hasWildcardExtras() { if (extras != null) { for (final ExtraCT extra : extras) { if (ExtraCT.WILDCARD.equals(extra.getClassifier()) || ExtraCT.WILDCARD.equals(extra.getType())) { return true; } } } return false; } public boolean isMultiSourceGAVs() { return multiSourceGAVs; } public void setMultiSourceGAVs(final boolean multiSourceGAVs) { this.multiSourceGAVs = multiSourceGAVs; } @Override public void normalize() { super.normalize(); normalize(extras); normalize(metas); normalize(excludedSourceLocations); } }