package org.mutabilitydetector.checkers; /* * #%L * MutabilityDetector * %% * Copyright (C) 2008 - 2014 Graham Allan * %% * 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. * #L% */ import com.google.common.collect.ImmutableList; import org.mutabilitydetector.AnalysisError; import org.mutabilitydetector.IsImmutable; import org.mutabilitydetector.MutableReasonDetail; import javax.annotation.concurrent.Immutable; import java.util.Collection; import java.util.Collections; @Immutable public final class CheckerResult { public static final CheckerResult IMMUTABLE_CHECKER_RESULT = new CheckerResult( IsImmutable.IMMUTABLE, Collections.<MutableReasonDetail>emptyList(), Collections.<AnalysisError>emptyList()); public final IsImmutable isImmutable; public final Collection<MutableReasonDetail> reasons; public final Collection<AnalysisError> errors; public CheckerResult(IsImmutable isImmutable, Iterable<MutableReasonDetail> reasons, Iterable<AnalysisError> errors) { this.isImmutable = isImmutable; this.reasons = ImmutableList.copyOf(reasons); this.errors = ImmutableList.copyOf(errors); } public static CheckerResult withNoErrors(IsImmutable isImmutable, Iterable<MutableReasonDetail> reasons) { return new CheckerResult(isImmutable, reasons, Collections.<AnalysisError>emptyList()); } }