#if( $packageName )
package $packageName;
#end
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.google.inject.AnnotationDatabase;
import roboguice.fragment.FragmentUtil;
public class AnnotationDatabaseImpl extends AnnotationDatabase {
public void fillAnnotationClassesAndFieldsNames(HashMap<String, Map<String, Set<String>>> mapAnnotationToMapClassWithInjectionNameToFieldSet) {
String annotationClassName = null;
Map<String, Set<String>> mapClassWithInjectionNameToFieldSet = null;
Set<String> fieldNameSet = null;
#foreach( $annotationName in $mapAnnotationToMapClassWithInjectionNameToFieldSet.keySet() )
annotationClassName = "$annotationName";
mapClassWithInjectionNameToFieldSet = mapAnnotationToMapClassWithInjectionNameToFieldSet.get(annotationClassName);
if( mapClassWithInjectionNameToFieldSet == null ) {
mapClassWithInjectionNameToFieldSet = new HashMap<String, Set<String>>();
mapAnnotationToMapClassWithInjectionNameToFieldSet.put(annotationClassName, mapClassWithInjectionNameToFieldSet);
}
#foreach( $className in $mapAnnotationToMapClassWithInjectionNameToFieldSet.get($annotationName).keySet() )
fieldNameSet = new HashSet<String>();
#foreach( $fieldName in $mapAnnotationToMapClassWithInjectionNameToFieldSet.get($annotationName).get($className) )
fieldNameSet.add("$fieldName");
#end
mapClassWithInjectionNameToFieldSet.put("$className", fieldNameSet);
#end
#end
}
public void fillAnnotationClassesAndMethods(HashMap<String, Map<String, Set<String>>> mapAnnotationToMapClassWithInjectionNameToMethodsSet) {
String annotationClassName = null;
Map<String, Set<String>> mapClassWithInjectionNameToMethodSet = null;
Set<String> methodSet = null;
#foreach( $annotationName in $mapAnnotationToMapClassWithInjectionNameToMethodSet.keySet() )
annotationClassName = "$annotationName";
mapClassWithInjectionNameToMethodSet = mapAnnotationToMapClassWithInjectionNameToMethodsSet.get(annotationClassName);
if( mapClassWithInjectionNameToMethodSet == null ) {
mapClassWithInjectionNameToMethodSet = new HashMap<String, Set<String>>();
mapAnnotationToMapClassWithInjectionNameToMethodsSet.put(annotationClassName, mapClassWithInjectionNameToMethodSet);
}
#foreach( $className in $mapAnnotationToMapClassWithInjectionNameToMethodSet.get($annotationName).keySet() )
methodSet = new HashSet<String>();
#foreach( $method in $mapAnnotationToMapClassWithInjectionNameToMethodSet.get($annotationName).get($className) )
methodSet.add("$method");
#end
mapClassWithInjectionNameToMethodSet.put("$className", methodSet);
#end
#end
}
public void fillAnnotationClassesAndConstructors(HashMap<String, Map<String, Set<String>>> mapAnnotationToMapClassWithInjectionNameToConstructorsSet) {
String annotationClassName = null;
Map<String, Set<String>> mapClassWithInjectionNameToConstructorSet = null;
Set<String> constructorSet = null;
#foreach( $annotationName in $mapAnnotationToMapClassWithInjectionNameToConstructorSet.keySet() )
annotationClassName = "$annotationName";
mapClassWithInjectionNameToConstructorSet = mapAnnotationToMapClassWithInjectionNameToConstructorsSet.get(annotationClassName);
if( mapClassWithInjectionNameToConstructorSet == null ) {
mapClassWithInjectionNameToConstructorSet = new HashMap<String, Set<String>>();
mapAnnotationToMapClassWithInjectionNameToConstructorsSet.put(annotationClassName, mapClassWithInjectionNameToConstructorSet);
}
#foreach( $className in $mapAnnotationToMapClassWithInjectionNameToConstructorSet.get($annotationName).keySet() )
constructorSet = new HashSet<String>();
#foreach( $constructor in $mapAnnotationToMapClassWithInjectionNameToConstructorSet.get($annotationName).get($className) )
constructorSet.add("$constructor");
#end
mapClassWithInjectionNameToConstructorSet.put("$className", constructorSet);
#end
#end
}
public void fillInjectableClasses(HashSet<String> injectedClasses) {
#foreach( $className in $injectedClasses )
injectedClasses.add("$className");
#end
if(FragmentUtil.hasNative) {
injectedClasses.add("android.app.FragmentManager");
}
if(FragmentUtil.hasSupport) {
injectedClasses.add("android.support.v4.app.FragmentManager");
}
}
}