test_class.declarator: store
test_class.modifier: private
test_class.original_string: private MemoryStore store;
test_class.type: MemoryStore
test_class.var_name: store
test_class.file: oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/TemplateTest.java
test_class.identifier: TemplateTest
test_case.body: @Test
      public void testHashCode() throws IOException {
          // child node null vs ""
          PropertyState primary = createProperty("primary", "primary");
          PropertyState mixin = createProperty("mixin", "mixin");
          PropertyTemplate[] properties = new PropertyTemplate[0];
  
          Template t0 = new Template(store.getReader(), primary, mixin, properties, "");
          Template t1 = new Template(store.getReader(), primary, mixin, properties, null);
  
          assertNotEquals(t0.hashCode(), t1.hashCode());
      }
test_case.class_method_signature: TemplateTest.testHashCode()
test_case.full_signature: @Test public void testHashCode()
test_case.identifier: testHashCode
test_case.invocations: createProperty createProperty getReader getReader assertNotEquals hashCode hashCode
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testHashCode()
focal_class.declarator: ZERO_CHILD_NODES_TYPE = 0
focal_class.modifier: static final
focal_class.original_string: static final short ZERO_CHILD_NODES_TYPE = 0;
focal_class.type: short
focal_class.var_name: ZERO_CHILD_NODES_TYPE
focal_class.declarator: SINGLE_CHILD_NODE_TYPE = 1
focal_class.modifier: static final
focal_class.original_string: static final short SINGLE_CHILD_NODE_TYPE = 1;
focal_class.type: short
focal_class.var_name: SINGLE_CHILD_NODE_TYPE
focal_class.declarator: MANY_CHILD_NODES_TYPE = 2
focal_class.modifier: static final
focal_class.original_string: static final short MANY_CHILD_NODES_TYPE = 2;
focal_class.type: short
focal_class.var_name: MANY_CHILD_NODES_TYPE
focal_class.declarator: ZERO_CHILD_NODES = null
focal_class.modifier: static final
focal_class.original_string: static final String ZERO_CHILD_NODES = null;
focal_class.type: String
focal_class.var_name: ZERO_CHILD_NODES
focal_class.declarator: MANY_CHILD_NODES = ""
focal_class.modifier: static final
focal_class.original_string: static final String MANY_CHILD_NODES = "";
focal_class.type: String
focal_class.var_name: MANY_CHILD_NODES
focal_class.declarator: reader
focal_class.modifier: @NotNull
      private final
focal_class.original_string: @NotNull
      private final SegmentReader reader;
focal_class.type: SegmentReader
focal_class.var_name: reader
focal_class.declarator: primaryType
focal_class.modifier: @Nullable
      private final
focal_class.original_string: @Nullable
      private final PropertyState primaryType;
focal_class.type: PropertyState
focal_class.var_name: primaryType
focal_class.declarator: mixinTypes
focal_class.modifier: @Nullable
      private final
focal_class.original_string: @Nullable
      private final PropertyState mixinTypes;
focal_class.type: PropertyState
focal_class.var_name: mixinTypes
focal_class.declarator: properties
focal_class.modifier: @NotNull
      private final
focal_class.original_string: @NotNull
      private final PropertyTemplate[] properties;
focal_class.type: PropertyTemplate[]
focal_class.var_name: properties
focal_class.declarator: childName
focal_class.modifier: @Nullable
      private final
focal_class.original_string: @Nullable
      private final String childName;
focal_class.type: String
focal_class.var_name: childName
focal_class.file: oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.java
focal_class.identifier: Template
focal_class.class_method_signature: Template.Template(@NotNull SegmentReader reader,
               @Nullable PropertyState primaryType,
               @Nullable PropertyState mixinTypes,
               @Nullable  PropertyTemplate[] properties,
               @Nullable String childName)
focal_class.full_signature:   Template(@NotNull SegmentReader reader,
               @Nullable PropertyState primaryType,
               @Nullable PropertyState mixinTypes,
               @Nullable  PropertyTemplate[] properties,
               @Nullable String childName)
focal_class.identifier: Template
focal_class.parameters: (@NotNull SegmentReader reader,
               @Nullable PropertyState primaryType,
               @Nullable PropertyState mixinTypes,
               @Nullable  PropertyTemplate[] properties,
               @Nullable String childName)
focal_class.signature:  Template(@NotNull SegmentReader reader,
               @Nullable PropertyState primaryType,
               @Nullable PropertyState mixinTypes,
               @Nullable  PropertyTemplate[] properties,
               @Nullable String childName)
focal_class.class_method_signature: Template.Template(@NotNull SegmentReader reader, @NotNull NodeState state)
focal_class.full_signature:   Template(@NotNull SegmentReader reader, @NotNull NodeState state)
focal_class.identifier: Template
focal_class.parameters: (@NotNull SegmentReader reader, @NotNull NodeState state)
focal_class.signature:  Template(@NotNull SegmentReader reader, @NotNull NodeState state)
focal_class.class_method_signature: Template.getPrimaryType()
focal_class.full_signature: @Nullable PropertyState getPrimaryType()
focal_class.identifier: getPrimaryType
focal_class.modifiers: @Nullable
focal_class.parameters: ()
focal_class.return: PropertyState
focal_class.signature: PropertyState getPrimaryType()
focal_class.class_method_signature: Template.getMixinTypes()
focal_class.full_signature: @Nullable PropertyState getMixinTypes()
focal_class.identifier: getMixinTypes
focal_class.modifiers: @Nullable
focal_class.parameters: ()
focal_class.return: PropertyState
focal_class.signature: PropertyState getMixinTypes()
focal_class.class_method_signature: Template.getPropertyTemplates()
focal_class.full_signature:  PropertyTemplate[] getPropertyTemplates()
focal_class.identifier: getPropertyTemplates
focal_class.parameters: ()
focal_class.return: PropertyTemplate[]
focal_class.signature: PropertyTemplate[] getPropertyTemplates()
focal_class.class_method_signature: Template.getPropertyTemplate(String name)
focal_class.full_signature:  PropertyTemplate getPropertyTemplate(String name)
focal_class.identifier: getPropertyTemplate
focal_class.parameters: (String name)
focal_class.return: PropertyTemplate
focal_class.signature: PropertyTemplate getPropertyTemplate(String name)
focal_class.class_method_signature: Template.getChildName()
focal_class.full_signature: @Nullable String getChildName()
focal_class.identifier: getChildName
focal_class.modifiers: @Nullable
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getChildName()
focal_class.class_method_signature: Template.getProperty(RecordId recordId, int index)
focal_class.full_signature:  SegmentPropertyState getProperty(RecordId recordId, int index)
focal_class.identifier: getProperty
focal_class.parameters: (RecordId recordId, int index)
focal_class.return: SegmentPropertyState
focal_class.signature: SegmentPropertyState getProperty(RecordId recordId, int index)
focal_class.class_method_signature: Template.getChildNodeMap(RecordId recordId)
focal_class.full_signature:  MapRecord getChildNodeMap(RecordId recordId)
focal_class.identifier: getChildNodeMap
focal_class.parameters: (RecordId recordId)
focal_class.return: MapRecord
focal_class.signature: MapRecord getChildNodeMap(RecordId recordId)
focal_class.class_method_signature: Template.getChildNode(String name, RecordId recordId)
focal_class.full_signature: public NodeState getChildNode(String name, RecordId recordId)
focal_class.identifier: getChildNode
focal_class.modifiers: public
focal_class.parameters: (String name, RecordId recordId)
focal_class.return: NodeState
focal_class.signature: NodeState getChildNode(String name, RecordId recordId)
focal_class.class_method_signature: Template.getChildNodeEntries(RecordId recordId)
focal_class.full_signature:  Iterable<? extends ChildNodeEntry> getChildNodeEntries(RecordId recordId)
focal_class.identifier: getChildNodeEntries
focal_class.parameters: (RecordId recordId)
focal_class.return: Iterable<? extends ChildNodeEntry>
focal_class.signature: Iterable<? extends ChildNodeEntry> getChildNodeEntries(RecordId recordId)
focal_class.class_method_signature: Template.compare(RecordId thisId, RecordId thatId)
focal_class.full_signature: public boolean compare(RecordId thisId, RecordId thatId)
focal_class.identifier: compare
focal_class.modifiers: public
focal_class.parameters: (RecordId thisId, RecordId thatId)
focal_class.return: boolean
focal_class.signature: boolean compare(RecordId thisId, RecordId thatId)
focal_class.class_method_signature: Template.equals(Object object)
focal_class.full_signature: @Override public boolean equals(Object object)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object object)
focal_class.return: boolean
focal_class.signature: boolean equals(Object object)
focal_class.class_method_signature: Template.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: Template.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: Template.getTemplateType()
focal_class.full_signature:  short getTemplateType()
focal_class.identifier: getTemplateType
focal_class.parameters: ()
focal_class.return: short
focal_class.signature: short getTemplateType()
focal_class.class_method_signature: Template.estimateMemoryUsage()
focal_class.full_signature: public int estimateMemoryUsage()
focal_class.identifier: estimateMemoryUsage
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int estimateMemoryUsage()
focal_class.class_method_signature: Template.estimateMemoryUsage(PropertyState propertyState)
focal_class.full_signature: private static int estimateMemoryUsage(PropertyState propertyState)
focal_class.identifier: estimateMemoryUsage
focal_class.modifiers: private static
focal_class.parameters: (PropertyState propertyState)
focal_class.return: int
focal_class.signature: int estimateMemoryUsage(PropertyState propertyState)
focal_method.body: @Override
      public int hashCode() {
          return Objects.hashCode(primaryType, mixinTypes,
                  Arrays.asList(properties), getTemplateType(), childName);
      }
focal_method.class_method_signature: Template.hashCode()
focal_method.full_signature: @Override public int hashCode()
focal_method.identifier: hashCode
focal_method.invocations: hashCode asList getTemplateType
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int hashCode()