Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2010-2011 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 idsExists(Element elementRes resIsValid valid) {
 
 		int[] idsValues = .extractAnnotationValue(element);
 		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;
							}
						}
					}
				}
			}
		}
	}
	public void idListenerMethod(Element elementAnnotationElements validatedElementsIsValid valid) {
		enclosingElementHasEBeanAnnotation(elementvalidatedElementsvalid);
		idsExists(element.valid);
		isNotPrivate(elementvalid);
		uniqueId(elementvalidatedElementsvalid);
	}
	public void activityRegistered(Element elementAndroidManifest androidManifestIsValid valid) {
		TypeElement typeElement = (TypeElementelement;
		String activityQualifiedName = typeElement.getQualifiedName().toString();
		String generatedActivityQualifiedName = activityQualifiedName + .;
		List<StringactivityQualifiedNames = androidManifest.getActivityQualifiedNames();
		if (!activityQualifiedNames.contains(generatedActivityQualifiedName)) {
			String simpleName = typeElement.getSimpleName().toString();
			String generatedSimpleName = simpleName + .;
			if (activityQualifiedNames.contains(activityQualifiedName)) {
				valid.invalidate();
				.printAnnotationError(element"The AndroidManifest.xml file contains the original activity, and not the AndroidAnnotations generated activity. Please register " + generatedSimpleName + " instead of " + simpleName);
else {
				.printAnnotationWarning(element"The activity " + generatedSimpleName + " is not registered in the AndroidManifest.xml file.");
			}
		}
	}
New to GrepCode? Check out our FAQ X