test_class.declarator: mapper = new DatamodelMapper("http://example.com/entity/")
test_class.modifier: private final
test_class.original_string: private final ObjectMapper mapper = new DatamodelMapper("http://example.com/entity/");
test_class.type: ObjectMapper
test_class.var_name: mapper
test_class.declarator: pid = new PropertyIdValueImpl("P2", "http://example.com/entity/")
test_class.modifier: private
test_class.original_string: private PropertyIdValue pid = new PropertyIdValueImpl("P2", "http://example.com/entity/");
test_class.type: PropertyIdValue
test_class.var_name: pid
test_class.declarator: s = new StatementImpl("MyId", StatementRank.NORMAL,
  			new SomeValueSnakImpl(new PropertyIdValueImpl("P42", "http://example.com/entity/")),
  			Collections.emptyList(), Collections.emptyList(), pid)
test_class.modifier: private final
test_class.original_string: private final Statement s = new StatementImpl("MyId", StatementRank.NORMAL,
  			new SomeValueSnakImpl(new PropertyIdValueImpl("P42", "http://example.com/entity/")),
  			Collections.emptyList(), Collections.emptyList(), pid);
test_class.type: Statement
test_class.var_name: s
test_class.declarator: statementGroups = Collections.singletonList(
  			new StatementGroupImpl(Collections.singletonList(s))
  	)
test_class.modifier: private final
test_class.original_string: private final List<StatementGroup> statementGroups = Collections.singletonList(
  			new StatementGroupImpl(Collections.singletonList(s))
  	);
test_class.type: List<StatementGroup>
test_class.var_name: statementGroups
test_class.declarator: label = new TermImpl("en", "label")
test_class.modifier: private final
test_class.original_string: private final MonolingualTextValue label = new TermImpl("en", "label");
test_class.type: MonolingualTextValue
test_class.var_name: label
test_class.declarator: labelList = Collections.singletonList(label)
test_class.modifier: private final
test_class.original_string: private final List<MonolingualTextValue> labelList = Collections.singletonList(label);
test_class.type: List<MonolingualTextValue>
test_class.var_name: labelList
test_class.declarator: desc = new TermImpl("fr", "des")
test_class.modifier: private final
test_class.original_string: private final MonolingualTextValue desc = new TermImpl("fr", "des");
test_class.type: MonolingualTextValue
test_class.var_name: desc
test_class.declarator: descList = Collections.singletonList(desc)
test_class.modifier: private final
test_class.original_string: private final List<MonolingualTextValue> descList = Collections.singletonList(desc);
test_class.type: List<MonolingualTextValue>
test_class.var_name: descList
test_class.declarator: alias = new TermImpl("de", "alias")
test_class.modifier: private final
test_class.original_string: private final MonolingualTextValue alias = new TermImpl("de", "alias");
test_class.type: MonolingualTextValue
test_class.var_name: alias
test_class.declarator: aliasList = Collections.singletonList(alias)
test_class.modifier: private final
test_class.original_string: private final List<MonolingualTextValue> aliasList = Collections.singletonList(alias);
test_class.type: List<MonolingualTextValue>
test_class.var_name: aliasList
test_class.declarator: datatypeId = new DatatypeIdImpl(DatatypeIdValue.DT_ITEM)
test_class.modifier: private
test_class.original_string: private DatatypeIdValue datatypeId = new DatatypeIdImpl(DatatypeIdValue.DT_ITEM);
test_class.type: DatatypeIdValue
test_class.var_name: datatypeId
test_class.declarator: pd1 = new PropertyDocumentImpl(pid, labelList, descList, aliasList,
  			statementGroups, datatypeId, 1234)
test_class.modifier: private final
test_class.original_string: private final PropertyDocument pd1 = new PropertyDocumentImpl(pid, labelList, descList, aliasList,
  			statementGroups, datatypeId, 1234);
test_class.type: PropertyDocument
test_class.var_name: pd1
test_class.declarator: pd2 = new PropertyDocumentImpl(pid, labelList, descList, aliasList,
  			statementGroups, datatypeId, 1234)
test_class.modifier: private final
test_class.original_string: private final PropertyDocument pd2 = new PropertyDocumentImpl(pid, labelList, descList, aliasList,
  			statementGroups, datatypeId, 1234);
test_class.type: PropertyDocument
test_class.var_name: pd2
test_class.declarator: JSON_PROPERTY = "{\"type\":\"property\",\"id\":\"P2\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"label\"}},\"descriptions\":{\"fr\":{\"language\":\"fr\",\"value\":\"des\"}},\"aliases\":{\"de\":[{\"language\":\"de\",\"value\":\"alias\"}]},\"claims\":{\"P42\":[{\"rank\":\"normal\",\"id\":\"MyId\",\"mainsnak\":{\"property\":\"P42\",\"snaktype\":\"somevalue\"},\"type\":\"statement\"}]},\"datatype\":\"wikibase-item\",\"lastrevid\":1234}"
test_class.modifier: private final
test_class.original_string: private final String JSON_PROPERTY = "{\"type\":\"property\",\"id\":\"P2\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"label\"}},\"descriptions\":{\"fr\":{\"language\":\"fr\",\"value\":\"des\"}},\"aliases\":{\"de\":[{\"language\":\"de\",\"value\":\"alias\"}]},\"claims\":{\"P42\":[{\"rank\":\"normal\",\"id\":\"MyId\",\"mainsnak\":{\"property\":\"P42\",\"snaktype\":\"somevalue\"},\"type\":\"statement\"}]},\"datatype\":\"wikibase-item\",\"lastrevid\":1234}";
test_class.type: String
test_class.var_name: JSON_PROPERTY
test_class.file: wdtk-datamodel/src/test/java/org/wikidata/wdtk/datamodel/implementation/PropertyDocumentImplTest.java
test_class.identifier: PropertyDocumentImplTest
test_case.body: @Test
  	public void testWithOverridenDescription() {
  		MonolingualTextValue newDescription = new MonolingualTextValueImpl(
  				"une meilleure description", "fr");
  		PropertyDocument withDescription = pd1.withDescription(newDescription);
  		assertEquals("une meilleure description", withDescription.findDescription("fr"));
  	}
test_case.class_method_signature: PropertyDocumentImplTest.testWithOverridenDescription()
test_case.full_signature: @Test public void testWithOverridenDescription()
test_case.identifier: testWithOverridenDescription
test_case.invocations: withDescription assertEquals findDescription
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testWithOverridenDescription()
focal_class.declarator: datatype
focal_class.modifier: private final
focal_class.original_string: private final DatatypeIdImpl datatype;
focal_class.type: DatatypeIdImpl
focal_class.var_name: datatype
focal_class.file: wdtk-datamodel/src/main/java/org/wikidata/wdtk/datamodel/implementation/PropertyDocumentImpl.java
focal_class.identifier: PropertyDocumentImpl
focal_class.interfaces: implements PropertyDocument
focal_class.class_method_signature: PropertyDocumentImpl.PropertyDocumentImpl(
  			PropertyIdValue id,
  			List<MonolingualTextValue> labels,
  			List<MonolingualTextValue> descriptions,
  			List<MonolingualTextValue> aliases,
  			List<StatementGroup> statements,
  			DatatypeIdValue datatype,
  			long revisionId)
focal_class.full_signature: public  PropertyDocumentImpl(
  			PropertyIdValue id,
  			List<MonolingualTextValue> labels,
  			List<MonolingualTextValue> descriptions,
  			List<MonolingualTextValue> aliases,
  			List<StatementGroup> statements,
  			DatatypeIdValue datatype,
  			long revisionId)
focal_class.identifier: PropertyDocumentImpl
focal_class.modifiers: public
focal_class.parameters: (
  			PropertyIdValue id,
  			List<MonolingualTextValue> labels,
  			List<MonolingualTextValue> descriptions,
  			List<MonolingualTextValue> aliases,
  			List<StatementGroup> statements,
  			DatatypeIdValue datatype,
  			long revisionId)
focal_class.signature:  PropertyDocumentImpl(
  			PropertyIdValue id,
  			List<MonolingualTextValue> labels,
  			List<MonolingualTextValue> descriptions,
  			List<MonolingualTextValue> aliases,
  			List<StatementGroup> statements,
  			DatatypeIdValue datatype,
  			long revisionId)
focal_class.class_method_signature: PropertyDocumentImpl.PropertyDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("labels") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> labels,
  			@JsonProperty("descriptions") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> descriptions,
  			@JsonProperty("aliases") @JsonDeserialize(using = AliasesDeserializer.class) Map<String, List<MonolingualTextValue>> aliases,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("datatype") String datatype,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.full_signature: @JsonCreator public  PropertyDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("labels") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> labels,
  			@JsonProperty("descriptions") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> descriptions,
  			@JsonProperty("aliases") @JsonDeserialize(using = AliasesDeserializer.class) Map<String, List<MonolingualTextValue>> aliases,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("datatype") String datatype,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.identifier: PropertyDocumentImpl
focal_class.modifiers: @JsonCreator public
focal_class.parameters: (
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("labels") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> labels,
  			@JsonProperty("descriptions") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> descriptions,
  			@JsonProperty("aliases") @JsonDeserialize(using = AliasesDeserializer.class) Map<String, List<MonolingualTextValue>> aliases,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("datatype") String datatype,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.signature:  PropertyDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("labels") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> labels,
  			@JsonProperty("descriptions") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> descriptions,
  			@JsonProperty("aliases") @JsonDeserialize(using = AliasesDeserializer.class) Map<String, List<MonolingualTextValue>> aliases,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("datatype") String datatype,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.class_method_signature: PropertyDocumentImpl.PropertyDocumentImpl(
  			PropertyIdValue id,
  			Map<String, MonolingualTextValue> labels,
  			Map<String, MonolingualTextValue> descriptions,
  			Map<String, List<MonolingualTextValue>> aliases,
  			Map<String, List<Statement>> claims,
  			DatatypeIdValue datatypeId, 
  			long revisionId)
focal_class.full_signature: private  PropertyDocumentImpl(
  			PropertyIdValue id,
  			Map<String, MonolingualTextValue> labels,
  			Map<String, MonolingualTextValue> descriptions,
  			Map<String, List<MonolingualTextValue>> aliases,
  			Map<String, List<Statement>> claims,
  			DatatypeIdValue datatypeId, 
  			long revisionId)
focal_class.identifier: PropertyDocumentImpl
focal_class.modifiers: private
focal_class.parameters: (
  			PropertyIdValue id,
  			Map<String, MonolingualTextValue> labels,
  			Map<String, MonolingualTextValue> descriptions,
  			Map<String, List<MonolingualTextValue>> aliases,
  			Map<String, List<Statement>> claims,
  			DatatypeIdValue datatypeId, 
  			long revisionId)
focal_class.signature:  PropertyDocumentImpl(
  			PropertyIdValue id,
  			Map<String, MonolingualTextValue> labels,
  			Map<String, MonolingualTextValue> descriptions,
  			Map<String, List<MonolingualTextValue>> aliases,
  			Map<String, List<Statement>> claims,
  			DatatypeIdValue datatypeId, 
  			long revisionId)
focal_class.class_method_signature: PropertyDocumentImpl.getJsonDatatype()
focal_class.full_signature: @JsonProperty("datatype") public String getJsonDatatype()
focal_class.identifier: getJsonDatatype
focal_class.modifiers: @JsonProperty("datatype") public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getJsonDatatype()
focal_class.class_method_signature: PropertyDocumentImpl.getPropertyId()
focal_class.full_signature: @JsonIgnore @Override public PropertyIdValue getPropertyId()
focal_class.identifier: getPropertyId
focal_class.modifiers: @JsonIgnore @Override public
focal_class.parameters: ()
focal_class.return: PropertyIdValue
focal_class.signature: PropertyIdValue getPropertyId()
focal_class.class_method_signature: PropertyDocumentImpl.getEntityId()
focal_class.full_signature: @JsonIgnore @Override public PropertyIdValue getEntityId()
focal_class.identifier: getEntityId
focal_class.modifiers: @JsonIgnore @Override public
focal_class.parameters: ()
focal_class.return: PropertyIdValue
focal_class.signature: PropertyIdValue getEntityId()
focal_class.class_method_signature: PropertyDocumentImpl.getDatatype()
focal_class.full_signature: @JsonIgnore @Override public DatatypeIdValue getDatatype()
focal_class.identifier: getDatatype
focal_class.modifiers: @JsonIgnore @Override public
focal_class.parameters: ()
focal_class.return: DatatypeIdValue
focal_class.signature: DatatypeIdValue getDatatype()
focal_class.class_method_signature: PropertyDocumentImpl.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: PropertyDocumentImpl.equals(Object obj)
focal_class.full_signature: @Override public boolean equals(Object obj)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object obj)
focal_class.return: boolean
focal_class.signature: boolean equals(Object obj)
focal_class.class_method_signature: PropertyDocumentImpl.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: PropertyDocumentImpl.withRevisionId(long newRevisionId)
focal_class.full_signature: @Override public PropertyDocument withRevisionId(long newRevisionId)
focal_class.identifier: withRevisionId
focal_class.modifiers: @Override public
focal_class.parameters: (long newRevisionId)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withRevisionId(long newRevisionId)
focal_class.class_method_signature: PropertyDocumentImpl.withLabel(MonolingualTextValue newLabel)
focal_class.full_signature: @Override public PropertyDocument withLabel(MonolingualTextValue newLabel)
focal_class.identifier: withLabel
focal_class.modifiers: @Override public
focal_class.parameters: (MonolingualTextValue newLabel)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withLabel(MonolingualTextValue newLabel)
focal_class.class_method_signature: PropertyDocumentImpl.withDescription(MonolingualTextValue newDescription)
focal_class.full_signature: @Override public PropertyDocument withDescription(MonolingualTextValue newDescription)
focal_class.identifier: withDescription
focal_class.modifiers: @Override public
focal_class.parameters: (MonolingualTextValue newDescription)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withDescription(MonolingualTextValue newDescription)
focal_class.class_method_signature: PropertyDocumentImpl.withAliases(String language, List<MonolingualTextValue> aliases)
focal_class.full_signature: @Override public PropertyDocument withAliases(String language, List<MonolingualTextValue> aliases)
focal_class.identifier: withAliases
focal_class.modifiers: @Override public
focal_class.parameters: (String language, List<MonolingualTextValue> aliases)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withAliases(String language, List<MonolingualTextValue> aliases)
focal_class.class_method_signature: PropertyDocumentImpl.withStatement(Statement statement)
focal_class.full_signature: @Override public PropertyDocument withStatement(Statement statement)
focal_class.identifier: withStatement
focal_class.modifiers: @Override public
focal_class.parameters: (Statement statement)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withStatement(Statement statement)
focal_class.class_method_signature: PropertyDocumentImpl.withoutStatementIds(Set<String> statementIds)
focal_class.full_signature: @Override public PropertyDocument withoutStatementIds(Set<String> statementIds)
focal_class.identifier: withoutStatementIds
focal_class.modifiers: @Override public
focal_class.parameters: (Set<String> statementIds)
focal_class.return: PropertyDocument
focal_class.signature: PropertyDocument withoutStatementIds(Set<String> statementIds)
focal_class.superclass: extends TermedStatementDocumentImpl
focal_method.body: @Override
  	public PropertyDocument withDescription(MonolingualTextValue newDescription) {
  		return new PropertyDocumentImpl(getEntityId(),
  				labels, withTerm(descriptions, newDescription),
  				aliases, claims,
  				datatype, revisionId);
  	}
focal_method.class_method_signature: PropertyDocumentImpl.withDescription(MonolingualTextValue newDescription)
focal_method.full_signature: @Override public PropertyDocument withDescription(MonolingualTextValue newDescription)
focal_method.identifier: withDescription
focal_method.invocations: getEntityId withTerm
focal_method.modifiers: @Override public
focal_method.parameters: (MonolingualTextValue newDescription)
focal_method.return: PropertyDocument
focal_method.signature: PropertyDocument withDescription(MonolingualTextValue newDescription)