test_class.file: code/src/test/java/com/googlecode/cqengine/codegen/AttributeSourceGeneratorTest.java
test_class.identifier: AttributeSourceGeneratorTest
test_case.body: @Test
      public void testGenerateSeparateAttributesClass() {
          String expected = "" +
                  "package com.googlecode.cqengine.codegen;\n" +
                  "\n" +
                  "import com.googlecode.cqengine.attribute.*;\n" +
                  "import com.googlecode.cqengine.query.option.QueryOptions;\n" +
                  "import java.util.*;\n" +
                  "import com.googlecode.cqengine.codegen.AttributeSourceGeneratorTest.Car;\n" +
                  "\n" +
                  "/**\n" +
                  " * CQEngine attributes for accessing the members of class {@code com.googlecode.cqengine.codegen.AttributeSourceGeneratorTest.Car}.\n" +
                  " * <p/>.\n" +
                  " * Auto-generated by CQEngine's {@code AttributeSourceGenerator}.\n" +
                  " */\n" +
                  "public class CQCar {\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing field {@code Car.name}.\n" +
                  "     */\n" +
                  "    // Note: For best performance:\n" +
                  "    // - if this field cannot be null, replace this SimpleNullableAttribute with a SimpleAttribute\n" +
                  "    public static final Attribute<Car, String> NAME = new SimpleNullableAttribute<Car, String>(\"NAME\") {\n" +
                  "        public String getValue(Car car, QueryOptions queryOptions) { return car.name; }\n" +
                  "    };\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing field {@code Car.features}.\n" +
                  "     */\n" +
                  "    // Note: For best performance:\n" +
                  "    // - if the collection cannot contain null elements change true to false in the following constructor, or\n" +
                  "    // - if the collection cannot contain null elements AND the field itself cannot be null, replace this\n" +
                  "    //   MultiValueNullableAttribute with a MultiValueAttribute (and change getNullableValues() to getValues())\n" +
                  "    public static final Attribute<Car, String> FEATURES = new MultiValueNullableAttribute<Car, String>(\"FEATURES\", true) {\n" +
                  "        public Iterable<String> getNullableValues(Car car, QueryOptions queryOptions) { return car.features; }\n" +
                  "    };\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing field {@code Car.prices}.\n" +
                  "     */\n" +
                  "    // Note: For best performance:\n" +
                  "    // - if this field cannot be null, replace this\n" +
                  "    //   MultiValueNullableAttribute with a MultiValueAttribute (and change getNullableValues() to getValues())\n" +
                  "    public static final Attribute<Car, Double> PRICES = new MultiValueNullableAttribute<Car, Double>(\"PRICES\", false) {\n" +
                  "        public Iterable<Double> getNullableValues(final Car car, QueryOptions queryOptions) {\n" +
                  "            return new AbstractList<Double>() {\n" +
                  "                public Double get(int i) { return car.prices[i]; }\n" +
                  "                public int size() { return car.prices.length; }\n" +
                  "            };\n" +
                  "        }\n" +
                  "    };\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing field {@code Car.extras}.\n" +
                  "     */\n" +
                  "    // Note: For best performance:\n" +
                  "    // - if the array cannot contain null elements change true to false in the following constructor, or\n" +
                  "    // - if the array cannot contain null elements AND the field itself cannot be null, replace this\n" +
                  "    //   MultiValueNullableAttribute with a MultiValueAttribute (and change getNullableValues() to getValues())\n" +
                  "    public static final Attribute<Car, String> EXTRAS = new MultiValueNullableAttribute<Car, String>(\"EXTRAS\", true) {\n" +
                  "        public Iterable<String> getNullableValues(Car car, QueryOptions queryOptions) { return Arrays.asList(car.extras); }\n" +
                  "    };\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing method {@code Car.getPrices()}.\n" +
                  "     */\n" +
                  "    // Note: For best performance:\n" +
                  "    // - if this method cannot return null, replace this\n" +
                  "    //   MultiValueNullableAttribute with a MultiValueAttribute (and change getNullableValues() to getValues())\n" +
                  "    public static final Attribute<Car, Double> GET_PRICES = new MultiValueNullableAttribute<Car, Double>(\"GET_PRICES\", false) {\n" +
                  "        public Iterable<Double> getNullableValues(final Car car, QueryOptions queryOptions) {\n" +
                  "            return new AbstractList<Double>() {\n" +
                  "                public Double get(int i) { return car.getPrices()[i]; }\n" +
                  "                public int size() { return car.getPrices().length; }\n" +
                  "            };\n" +
                  "        }\n" +
                  "    };\n" +
                  "\n" +
                  "    /**\n" +
                  "     * CQEngine attribute for accessing field {@code Car.inheritedCarId}.\n" +
                  "     */\n" +
                  "    public static final Attribute<Car, Integer> INHERITED_CAR_ID = new SimpleAttribute<Car, Integer>(\"INHERITED_CAR_ID\") {\n" +
                  "        public Integer getValue(Car car, QueryOptions queryOptions) { return car.inheritedCarId; }\n" +
                  "    };\n" +
                  "}\n";
          assertEquals(expected, generateSeparateAttributesClass(Car.class, Car.class.getPackage()));
      }
test_case.class_method_signature: AttributeSourceGeneratorTest.testGenerateSeparateAttributesClass()
test_case.full_signature: @Test public void testGenerateSeparateAttributesClass()
test_case.identifier: testGenerateSeparateAttributesClass
test_case.invocations: assertEquals generateSeparateAttributesClass getPackage
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGenerateSeparateAttributesClass()
focal_class.declarator: PRIMITIVES_TO_WRAPPERS = new HashMap<Class<?>, Class<?>>(){{
          put(boolean.class, Boolean.class);
          put(byte.class, Byte.class);
          put(short.class, Short.class);
          put(char.class, Character.class);
          put(int.class, Integer.class);
          put(long.class, Long.class);
          put(float.class, Float.class);
          put(double.class, Double.class);
      }}
focal_class.modifier: static final
focal_class.original_string: static final Map<Class<?>, Class<?>> PRIMITIVES_TO_WRAPPERS = new HashMap<Class<?>, Class<?>>(){{
          put(boolean.class, Boolean.class);
          put(byte.class, Byte.class);
          put(short.class, Short.class);
          put(char.class, Character.class);
          put(int.class, Integer.class);
          put(long.class, Long.class);
          put(float.class, Float.class);
          put(double.class, Double.class);
      }};
focal_class.type: Map<Class<?>, Class<?>>
focal_class.var_name: PRIMITIVES_TO_WRAPPERS
focal_class.file: code/src/main/java/com/googlecode/cqengine/codegen/AttributeSourceGenerator.java
focal_class.identifier: AttributeSourceGenerator
focal_class.class_method_signature: AttributeSourceGenerator.generateAttributesForPastingIntoTargetClass(final Class<?> targetClass)
focal_class.full_signature: public static String generateAttributesForPastingIntoTargetClass(final Class<?> targetClass)
focal_class.identifier: generateAttributesForPastingIntoTargetClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass)
focal_class.return: String
focal_class.signature: String generateAttributesForPastingIntoTargetClass(final Class<?> targetClass)
focal_class.class_method_signature: AttributeSourceGenerator.generateAttributesForPastingIntoTargetClass(final Class<?> targetClass, MemberFilter memberFilter)
focal_class.full_signature: public static String generateAttributesForPastingIntoTargetClass(final Class<?> targetClass, MemberFilter memberFilter)
focal_class.identifier: generateAttributesForPastingIntoTargetClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass, MemberFilter memberFilter)
focal_class.return: String
focal_class.signature: String generateAttributesForPastingIntoTargetClass(final Class<?> targetClass, MemberFilter memberFilter)
focal_class.class_method_signature: AttributeSourceGenerator.generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)
focal_class.full_signature: public static String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)
focal_class.identifier: generateSeparateAttributesClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass, String packageOfAttributesClass)
focal_class.return: String
focal_class.signature: String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)
focal_class.class_method_signature: AttributeSourceGenerator.generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.full_signature: public static String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.identifier: generateSeparateAttributesClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.return: String
focal_class.signature: String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.class_method_signature: AttributeSourceGenerator.generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass)
focal_class.full_signature: public static String generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass)
focal_class.identifier: generateSeparateAttributesClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass, Package packageOfAttributesClass)
focal_class.return: String
focal_class.signature: String generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass)
focal_class.class_method_signature: AttributeSourceGenerator.generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass, MemberFilter memberFilter)
focal_class.full_signature: public static String generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass, MemberFilter memberFilter)
focal_class.identifier: generateSeparateAttributesClass
focal_class.modifiers: public static
focal_class.parameters: (final Class<?> targetClass, Package packageOfAttributesClass, MemberFilter memberFilter)
focal_class.return: String
focal_class.signature: String generateSeparateAttributesClass(final Class<?> targetClass, Package packageOfAttributesClass, MemberFilter memberFilter)
focal_class.class_method_signature: AttributeSourceGenerator.generateAttributesForClass(final Class<?> targetClass, boolean separateAttributesClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.full_signature: static String generateAttributesForClass(final Class<?> targetClass, boolean separateAttributesClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.identifier: generateAttributesForClass
focal_class.modifiers: static
focal_class.parameters: (final Class<?> targetClass, boolean separateAttributesClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.return: String
focal_class.signature: String generateAttributesForClass(final Class<?> targetClass, boolean separateAttributesClass, String packageOfAttributesClass, MemberFilter memberFilter)
focal_class.class_method_signature: AttributeSourceGenerator.generateAttributeForMember(Class<?> enclosingClass, Member member)
focal_class.full_signature: static String generateAttributeForMember(Class<?> enclosingClass, Member member)
focal_class.identifier: generateAttributeForMember
focal_class.modifiers: static
focal_class.parameters: (Class<?> enclosingClass, Member member)
focal_class.return: String
focal_class.signature: String generateAttributeForMember(Class<?> enclosingClass, Member member)
focal_class.class_method_signature: AttributeSourceGenerator.generateSimpleAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.full_signature: static String generateSimpleAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.identifier: generateSimpleAttribute
focal_class.modifiers: static
focal_class.parameters: (String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.return: String
focal_class.signature: String generateSimpleAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.class_method_signature: AttributeSourceGenerator.generateSimpleNullableAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.full_signature: static String generateSimpleNullableAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.identifier: generateSimpleNullableAttribute
focal_class.modifiers: static
focal_class.parameters: (String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.return: String
focal_class.signature: String generateSimpleNullableAttribute(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.class_method_signature: AttributeSourceGenerator.generateMultiValueNullableAttributeForIterable(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.full_signature: static String generateMultiValueNullableAttributeForIterable(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.identifier: generateMultiValueNullableAttributeForIterable
focal_class.modifiers: static
focal_class.parameters: (String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.return: String
focal_class.signature: String generateMultiValueNullableAttributeForIterable(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.class_method_signature: AttributeSourceGenerator.generateMultiValueNullableAttributeForObjectArray(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.full_signature: static String generateMultiValueNullableAttributeForObjectArray(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.identifier: generateMultiValueNullableAttributeForObjectArray
focal_class.modifiers: static
focal_class.parameters: (String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.return: String
focal_class.signature: String generateMultiValueNullableAttributeForObjectArray(String objectType, String attributeType, String memberName, MemberType memberType)
focal_class.class_method_signature: AttributeSourceGenerator.generateMultiValueNullableAttributeForPrimitiveArray(String objectType, String attributeType, String primitiveType, String memberName, MemberType memberType)
focal_class.full_signature: static String generateMultiValueNullableAttributeForPrimitiveArray(String objectType, String attributeType, String primitiveType, String memberName, MemberType memberType)
focal_class.identifier: generateMultiValueNullableAttributeForPrimitiveArray
focal_class.modifiers: static
focal_class.parameters: (String objectType, String attributeType, String primitiveType, String memberName, MemberType memberType)
focal_class.return: String
focal_class.signature: String generateMultiValueNullableAttributeForPrimitiveArray(String objectType, String attributeType, String primitiveType, String memberName, MemberType memberType)
focal_class.class_method_signature: AttributeSourceGenerator.toUpperCaseWithUnderscores(String camelCase)
focal_class.full_signature: static String toUpperCaseWithUnderscores(String camelCase)
focal_class.identifier: toUpperCaseWithUnderscores
focal_class.modifiers: static
focal_class.parameters: (String camelCase)
focal_class.return: String
focal_class.signature: String toUpperCaseWithUnderscores(String camelCase)
focal_class.class_method_signature: AttributeSourceGenerator.getMembers(Class currentClass)
focal_class.full_signature: static List<Member> getMembers(Class currentClass)
focal_class.identifier: getMembers
focal_class.modifiers: static
focal_class.parameters: (Class currentClass)
focal_class.return: List<Member>
focal_class.signature: List<Member> getMembers(Class currentClass)
focal_class.class_method_signature: AttributeSourceGenerator.getMemberType(Member member)
focal_class.full_signature: static MemberType getMemberType(Member member)
focal_class.identifier: getMemberType
focal_class.modifiers: static
focal_class.parameters: (Member member)
focal_class.return: MemberType
focal_class.signature: MemberType getMemberType(Member member)
focal_class.class_method_signature: AttributeSourceGenerator.getType(Member member)
focal_class.full_signature: static Class<?> getType(Member member)
focal_class.identifier: getType
focal_class.modifiers: static
focal_class.parameters: (Member member)
focal_class.return: Class<?>
focal_class.signature: Class<?> getType(Member member)
focal_class.class_method_signature: AttributeSourceGenerator.getGenericType(Member member)
focal_class.full_signature: static ParameterizedType getGenericType(Member member)
focal_class.identifier: getGenericType
focal_class.modifiers: static
focal_class.parameters: (Member member)
focal_class.return: ParameterizedType
focal_class.signature: ParameterizedType getGenericType(Member member)
focal_class.class_method_signature: AttributeSourceGenerator.AttributeSourceGenerator()
focal_class.full_signature:   AttributeSourceGenerator()
focal_class.identifier: AttributeSourceGenerator
focal_class.parameters: ()
focal_class.signature:  AttributeSourceGenerator()
focal_method.body: public static String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass) {
          return generateAttributesForClass(targetClass, true, packageOfAttributesClass, ALL_MEMBERS);
      }
focal_method.class_method_signature: AttributeSourceGenerator.generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)
focal_method.full_signature: public static String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)
focal_method.identifier: generateSeparateAttributesClass
focal_method.invocations: generateAttributesForClass
focal_method.modifiers: public static
focal_method.parameters: (final Class<?> targetClass, String packageOfAttributesClass)
focal_method.return: String
focal_method.signature: String generateSeparateAttributesClass(final Class<?> targetClass, String packageOfAttributesClass)