Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2010-2012 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 com.googlecode.androidannotations.helper;
 
 import java.util.List;
 import java.util.Set;
 
 
 
 public class IdValidatorHelper extends ValidatorHelper {
 
 
 	public IdValidatorHelper(IdAnnotationHelper idAnnotationHelper) {
 		super(idAnnotationHelper);
 		this. = idAnnotationHelper;
 	}
 
 	public void idExists(Element elementRes resIsValid valid) {
 		idExists(elementrestruevalid);
 	}
 
 	public void idExists(Element elementRes resboolean defaultUseNameIsValid valid) {
 		idExists(elementresdefaultUseNametruevalid);
 	}
 
 	public void idExists(Element elementRes resboolean defaultUseNameboolean allowDefaultIsValid valid) {
 
 
 		idExists(elementresdefaultUseNameallowDefaultvalididValue);
 	}
 
 	public void idExists(Element elementRes resboolean defaultUseNameboolean allowDefaultIsValid validString methodName) {
 
 		Integer idValue = .extractAnnotationValue(elementmethodName);
 
 		idExists(elementresdefaultUseNameallowDefaultvalididValue);
 	}
 
 	public void idsExists(Element elementRes resIsValid valid) {
 
 		int[] idsValues = .extractAnnotationValue(element);
 
 		if (idsValues == null) {
 			valid.invalidate();
 			.printAnnotationWarning(element"The value of the %s annotation could not be determined at compile time, for unknown reasons. Please report this issue.");
 		} else if (idsValues[0] == .) {
 			idExists(elementrestruetruevalididsValues[0]);
 		} else {
 			for (int idValue : idsValues) {
 				idExists(elementresfalsetruevalididValue);
 			}
 		}
 	}
 
 	private void idExists(Element elementRes resboolean defaultUseNameboolean allowDefaultIsValid validInteger idValue) {
 		if (allowDefault && idValue.equals(.)) {
 			if (defaultUseName) {
 				String elementName = element.getSimpleName().toString();
 				int lastIndex = elementName.lastIndexOf(.actionName());
 				if (lastIndex != -1) {
 					elementName = elementName.substring(0, lastIndex);
 				}
 				if (!.containsField(elementNameres)) {
 					valid.invalidate();
 					String message;
 					String snakeCaseName = CaseHelper.camelCaseToSnakeCase(elementName);
 					String rQualifiedPrefix = String.format("R.%s."res.rName());
 					if (snakeCaseName.equals(elementName)) {
 						message = "Id not found: " + rQualifiedPrefix + elementName;
 					} else {
 						message = "Id not found: " + rQualifiedPrefix + elementName + " or " + rQualifiedPrefix + snakeCaseName;
 					}
 				}
 			}
 		} else {
 			if (!.containsIdValue(idValueres)) {
 				valid.invalidate();
 				.printAnnotationError(element"Id value not found in R." + res.rName() + ": " + idValue);
			}
		}
	}
	public void uniqueId(Element elementAnnotationElements validatedElementsIsValid valid) {
		if (valid.isValid()) {
			Element layoutElement = element.getEnclosingElement();
			List<StringannotationQualifiedIds = .extractAnnotationQualifiedIds(element);
			Set<? extends ElementannotatedElements = validatedElements.getAnnotatedElements(.getTarget());
			for (Element uniqueCheckElement : annotatedElements) {
				Element enclosingElement = uniqueCheckElement.getEnclosingElement();
				if (layoutElement.equals(enclosingElement)) {
					List<StringcheckQualifiedIds = .extractAnnotationQualifiedIds(uniqueCheckElement);
					for (String checkQualifiedId : checkQualifiedIds) {
						for (String annotationQualifiedId : annotationQualifiedIds) {
							if (annotationQualifiedId.equals(checkQualifiedId)) {
								valid.invalidate();
								String annotationSimpleId = annotationQualifiedId.substring(annotationQualifiedId.lastIndexOf('.') + 1);
								.printAnnotationError(element"The id " + annotationSimpleId + " is already used on the following " + .annotationName() + " method: " + uniqueCheckElement);
								return;
							}
						}
					}
				}
			}
		}
	}
New to GrepCode? Check out our FAQ X