From fa61e1121aba848a8e68831f2d27c4ea518c864d Mon Sep 17 00:00:00 2001 From: Kay-Uwe Janssen Date: Tue, 14 Mar 2017 20:51:46 +0100 Subject: [PATCH] Generate classes despite validation errors --- .../internal/AndroidAnnotationProcessor.java | 6 ++-- .../exception/ValidationException.java | 34 ------------------- .../internal/process/ModelValidator.java | 12 ++----- 3 files changed, 4 insertions(+), 48 deletions(-) delete mode 100644 AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/exception/ValidationException.java diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/AndroidAnnotationProcessor.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/AndroidAnnotationProcessor.java index a6265b7c87..c85e29fedf 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/AndroidAnnotationProcessor.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/AndroidAnnotationProcessor.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * 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 @@ -37,7 +38,6 @@ import org.androidannotations.internal.exception.AndroidManifestNotFoundException; import org.androidannotations.internal.exception.ProcessingException; import org.androidannotations.internal.exception.RClassNotFoundException; -import org.androidannotations.internal.exception.ValidationException; import org.androidannotations.internal.exception.VersionMismatchException; import org.androidannotations.internal.exception.VersionNotFoundException; import org.androidannotations.internal.generation.CodeModelGenerator; @@ -124,8 +124,6 @@ public boolean process(Set annotations, RoundEnvironment try { checkApiAndProcessorVersions(); processThrowing(annotations, roundEnv); - } catch (ValidationException e) { - // We do nothing, errors have been printed by ModelValidator } catch (ProcessingException e) { handleException(annotations, roundEnv, e); } catch (Exception e) { @@ -210,7 +208,7 @@ private IRClass findRClasses(AndroidManifest androidManifest) throws RClassNotFo } } - private AnnotationElements validateAnnotations(AnnotationElements extractedModel, AnnotationElementsHolder validatingHolder) throws ValidationException { + private AnnotationElements validateAnnotations(AnnotationElements extractedModel, AnnotationElementsHolder validatingHolder) { timeStats.start("Validate Annotations"); ModelValidator modelValidator = new ModelValidator(androidAnnotationsEnv); AnnotationElements validatedAnnotations = modelValidator.validate(extractedModel, validatingHolder); diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/exception/ValidationException.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/exception/ValidationException.java deleted file mode 100644 index 90f60f82fc..0000000000 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/exception/ValidationException.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright (C) 2010-2016 eBusiness Information, Excilys Group - * - * 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.androidannotations.internal.exception; - -import java.util.List; - -import org.androidannotations.ElementValidation; - -public class ValidationException extends Exception { - - private final List failedValidations; - - public ValidationException(List failedValidations) { - this.failedValidations = failedValidations; - } - - public List getFailedValidations() { - return failedValidations; - } - -} diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/process/ModelValidator.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/process/ModelValidator.java index 4ebf636fdb..5f6e3471f5 100644 --- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/process/ModelValidator.java +++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/process/ModelValidator.java @@ -1,5 +1,6 @@ /** * Copyright (C) 2010-2016 eBusiness Information, Excilys Group + * Copyright (C) 2016-2017 the AndroidAnnotations project * * 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 @@ -15,9 +16,7 @@ */ package org.androidannotations.internal.process; -import java.util.ArrayList; import java.util.LinkedHashSet; -import java.util.List; import java.util.Set; import javax.lang.model.element.AnnotationMirror; @@ -26,7 +25,6 @@ import org.androidannotations.AndroidAnnotationsEnvironment; import org.androidannotations.ElementValidation; import org.androidannotations.handler.AnnotationHandler; -import org.androidannotations.internal.exception.ValidationException; import org.androidannotations.internal.model.AnnotationElements; import org.androidannotations.internal.model.AnnotationElementsHolder; import org.androidannotations.logger.Logger; @@ -41,10 +39,9 @@ public ModelValidator(AndroidAnnotationsEnvironment environment) { this.environment = environment; } - public AnnotationElements validate(AnnotationElements extractedModel, AnnotationElementsHolder validatingHolder) throws ValidationException { + public AnnotationElements validate(AnnotationElements extractedModel, AnnotationElementsHolder validatingHolder) { LOGGER.info("Validating elements"); - List failedValidations = new ArrayList<>(); /* * We currently do not validate the elements on the ancestors, assuming @@ -84,16 +81,11 @@ public AnnotationElements validate(AnnotationElements extractedModel, Annotation if (elementValidation.isValid()) { validatedAnnotatedElements.add(annotatedElement); } else { - failedValidations.add(elementValidation); LOGGER.warn("Element {} invalidated by {}", annotatedElement, annotatedElement, validatorSimpleName); } } } - if (!failedValidations.isEmpty()) { - throw new ValidationException(failedValidations); - } - return validatingHolder; } }