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: fid = new FormIdValueImpl("L42-F1", "http://example.com/entity/")
test_class.modifier: private final
test_class.original_string: private final FormIdValue fid = new FormIdValueImpl("L42-F1", "http://example.com/entity/");
test_class.type: FormIdValue
test_class.var_name: fid
test_class.declarator: gramFeatures = Arrays.asList(
  			new ItemIdValueImpl("Q2", "http://example.com/entity/"),
  			new ItemIdValueImpl("Q1", "http://example.com/entity/")
  	)
test_class.modifier: private final
test_class.original_string: private final List<ItemIdValue> gramFeatures = Arrays.asList(
  			new ItemIdValueImpl("Q2", "http://example.com/entity/"),
  			new ItemIdValueImpl("Q1", "http://example.com/entity/")
  	);
test_class.type: List<ItemIdValue>
test_class.var_name: gramFeatures
test_class.declarator: s = new StatementImpl("MyId", StatementRank.NORMAL,
  			new SomeValueSnakImpl(new PropertyIdValueImpl("P42", "http://example.com/entity/")),
  			Collections.emptyList(), Collections.emptyList(), fid)
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(), fid);
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: rep = new TermImpl("en", "rep")
test_class.modifier: private final
test_class.original_string: private final MonolingualTextValue rep = new TermImpl("en", "rep");
test_class.type: MonolingualTextValue
test_class.var_name: rep
test_class.declarator: repList = Collections.singletonList(rep)
test_class.modifier: private final
test_class.original_string: private final List<MonolingualTextValue> repList = Collections.singletonList(rep);
test_class.type: List<MonolingualTextValue>
test_class.var_name: repList
test_class.declarator: fd1 = new FormDocumentImpl(fid, repList, gramFeatures, statementGroups, 1234)
test_class.modifier: private final
test_class.original_string: private final FormDocument fd1 = new FormDocumentImpl(fid, repList, gramFeatures, statementGroups, 1234);
test_class.type: FormDocument
test_class.var_name: fd1
test_class.declarator: fd2 = new FormDocumentImpl(fid, repList, gramFeatures, statementGroups, 1234)
test_class.modifier: private final
test_class.original_string: private final FormDocument fd2 = new FormDocumentImpl(fid, repList, gramFeatures, statementGroups, 1234);
test_class.type: FormDocument
test_class.var_name: fd2
test_class.declarator: JSON_FORM = "{\"type\":\"form\",\"id\":\"L42-F1\",\"grammaticalFeatures\":[\"Q1\",\"Q2\"],\"representations\":{\"en\":{\"language\":\"en\",\"value\":\"rep\"}},\"claims\":{\"P42\":[{\"rank\":\"normal\",\"id\":\"MyId\",\"mainsnak\":{\"property\":\"P42\",\"snaktype\":\"somevalue\"},\"type\":\"statement\"}]},\"lastrevid\":1234}"
test_class.modifier: private final
test_class.original_string: private final String JSON_FORM = "{\"type\":\"form\",\"id\":\"L42-F1\",\"grammaticalFeatures\":[\"Q1\",\"Q2\"],\"representations\":{\"en\":{\"language\":\"en\",\"value\":\"rep\"}},\"claims\":{\"P42\":[{\"rank\":\"normal\",\"id\":\"MyId\",\"mainsnak\":{\"property\":\"P42\",\"snaktype\":\"somevalue\"},\"type\":\"statement\"}]},\"lastrevid\":1234}";
test_class.type: String
test_class.var_name: JSON_FORM
test_class.file: wdtk-datamodel/src/test/java/org/wikidata/wdtk/datamodel/implementation/FormDocumentImplTest.java
test_class.identifier: FormDocumentImplTest
test_case.body: @Test
  	public void grammaticalFeaturesCanBeNull() {
  		FormDocument doc = new FormDocumentImpl(fid, repList, null, statementGroups, 1234);
  		assertTrue(doc.getGrammaticalFeatures().isEmpty());
  	}
test_case.class_method_signature: FormDocumentImplTest.grammaticalFeaturesCanBeNull()
test_case.full_signature: @Test public void grammaticalFeaturesCanBeNull()
test_case.identifier: grammaticalFeaturesCanBeNull
test_case.invocations: assertTrue isEmpty getGrammaticalFeatures
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void grammaticalFeaturesCanBeNull()
focal_class.declarator: grammaticalFeatures
focal_class.modifier: private final
focal_class.original_string: private final List<ItemIdValue> grammaticalFeatures;
focal_class.type: List<ItemIdValue>
focal_class.var_name: grammaticalFeatures
focal_class.declarator: representations
focal_class.modifier: private final
focal_class.original_string: private final Map<String,MonolingualTextValue> representations;
focal_class.type: Map<String,MonolingualTextValue>
focal_class.var_name: representations
focal_class.file: wdtk-datamodel/src/main/java/org/wikidata/wdtk/datamodel/implementation/FormDocumentImpl.java
focal_class.identifier: FormDocumentImpl
focal_class.interfaces: implements FormDocument
focal_class.class_method_signature: FormDocumentImpl.FormDocumentImpl(
  			FormIdValue id,
  			List<MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			List<StatementGroup> statements,
  			long revisionId)
focal_class.full_signature:   FormDocumentImpl(
  			FormIdValue id,
  			List<MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			List<StatementGroup> statements,
  			long revisionId)
focal_class.identifier: FormDocumentImpl
focal_class.parameters: (
  			FormIdValue id,
  			List<MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			List<StatementGroup> statements,
  			long revisionId)
focal_class.signature:  FormDocumentImpl(
  			FormIdValue id,
  			List<MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			List<StatementGroup> statements,
  			long revisionId)
focal_class.class_method_signature: FormDocumentImpl.FormDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("representations") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> representations,
  			@JsonProperty("grammaticalFeatures") List<String> grammaticalFeatures,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.full_signature: @JsonCreator  FormDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("representations") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> representations,
  			@JsonProperty("grammaticalFeatures") List<String> grammaticalFeatures,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.identifier: FormDocumentImpl
focal_class.modifiers: @JsonCreator
focal_class.parameters: (
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("representations") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> representations,
  			@JsonProperty("grammaticalFeatures") List<String> grammaticalFeatures,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.signature:  FormDocumentImpl(
  			@JsonProperty("id") String jsonId,
  			@JsonProperty("representations") @JsonDeserialize(contentAs=TermImpl.class) Map<String, MonolingualTextValue> representations,
  			@JsonProperty("grammaticalFeatures") List<String> grammaticalFeatures,
  			@JsonProperty("claims") Map<String, List<StatementImpl.PreStatement>> claims,
  			@JsonProperty("lastrevid") long revisionId,
  			@JacksonInject("siteIri") String siteIri)
focal_class.class_method_signature: FormDocumentImpl.FormDocumentImpl(
  			FormIdValue id,
  			Map<String,MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			Map<String, List<Statement>> statements,
  			long revisionId)
focal_class.full_signature: private  FormDocumentImpl(
  			FormIdValue id,
  			Map<String,MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			Map<String, List<Statement>> statements,
  			long revisionId)
focal_class.identifier: FormDocumentImpl
focal_class.modifiers: private
focal_class.parameters: (
  			FormIdValue id,
  			Map<String,MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			Map<String, List<Statement>> statements,
  			long revisionId)
focal_class.signature:  FormDocumentImpl(
  			FormIdValue id,
  			Map<String,MonolingualTextValue> representations,
  			List<ItemIdValue> grammaticalFeatures,
  			Map<String, List<Statement>> statements,
  			long revisionId)
focal_class.class_method_signature: FormDocumentImpl.constructTermMap(List<MonolingualTextValue> terms)
focal_class.full_signature: private static Map<String, MonolingualTextValue> constructTermMap(List<MonolingualTextValue> terms)
focal_class.identifier: constructTermMap
focal_class.modifiers: private static
focal_class.parameters: (List<MonolingualTextValue> terms)
focal_class.return: Map<String, MonolingualTextValue>
focal_class.signature: Map<String, MonolingualTextValue> constructTermMap(List<MonolingualTextValue> terms)
focal_class.class_method_signature: FormDocumentImpl.toTerm(MonolingualTextValue term)
focal_class.full_signature: private static MonolingualTextValue toTerm(MonolingualTextValue term)
focal_class.identifier: toTerm
focal_class.modifiers: private static
focal_class.parameters: (MonolingualTextValue term)
focal_class.return: MonolingualTextValue
focal_class.signature: MonolingualTextValue toTerm(MonolingualTextValue term)
focal_class.class_method_signature: FormDocumentImpl.constructGrammaticalFeatures(List<String> grammaticalFeatures, String siteIri)
focal_class.full_signature: private List<ItemIdValue> constructGrammaticalFeatures(List<String> grammaticalFeatures, String siteIri)
focal_class.identifier: constructGrammaticalFeatures
focal_class.modifiers: private
focal_class.parameters: (List<String> grammaticalFeatures, String siteIri)
focal_class.return: List<ItemIdValue>
focal_class.signature: List<ItemIdValue> constructGrammaticalFeatures(List<String> grammaticalFeatures, String siteIri)
focal_class.class_method_signature: FormDocumentImpl.getEntityId()
focal_class.full_signature: @JsonIgnore @Override public FormIdValue getEntityId()
focal_class.identifier: getEntityId
focal_class.modifiers: @JsonIgnore @Override public
focal_class.parameters: ()
focal_class.return: FormIdValue
focal_class.signature: FormIdValue getEntityId()
focal_class.class_method_signature: FormDocumentImpl.getGrammaticalFeatures()
focal_class.full_signature: @JsonIgnore @Override public List<ItemIdValue> getGrammaticalFeatures()
focal_class.identifier: getGrammaticalFeatures
focal_class.modifiers: @JsonIgnore @Override public
focal_class.parameters: ()
focal_class.return: List<ItemIdValue>
focal_class.signature: List<ItemIdValue> getGrammaticalFeatures()
focal_class.class_method_signature: FormDocumentImpl.getJsonGrammaticalFeatures()
focal_class.full_signature: @JsonProperty("grammaticalFeatures") List<String> getJsonGrammaticalFeatures()
focal_class.identifier: getJsonGrammaticalFeatures
focal_class.modifiers: @JsonProperty("grammaticalFeatures")
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getJsonGrammaticalFeatures()
focal_class.class_method_signature: FormDocumentImpl.getType()
focal_class.full_signature: @JsonProperty("type") String getType()
focal_class.identifier: getType
focal_class.modifiers: @JsonProperty("type")
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getType()
focal_class.class_method_signature: FormDocumentImpl.getRepresentations()
focal_class.full_signature: @JsonProperty("representations") @Override public Map<String, MonolingualTextValue> getRepresentations()
focal_class.identifier: getRepresentations
focal_class.modifiers: @JsonProperty("representations") @Override public
focal_class.parameters: ()
focal_class.return: Map<String, MonolingualTextValue>
focal_class.signature: Map<String, MonolingualTextValue> getRepresentations()
focal_class.class_method_signature: FormDocumentImpl.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: FormDocumentImpl.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: FormDocumentImpl.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: FormDocumentImpl.withRevisionId(long newRevisionId)
focal_class.full_signature: @Override public FormDocument withRevisionId(long newRevisionId)
focal_class.identifier: withRevisionId
focal_class.modifiers: @Override public
focal_class.parameters: (long newRevisionId)
focal_class.return: FormDocument
focal_class.signature: FormDocument withRevisionId(long newRevisionId)
focal_class.class_method_signature: FormDocumentImpl.withRepresentation(MonolingualTextValue representation)
focal_class.full_signature: @Override public FormDocument withRepresentation(MonolingualTextValue representation)
focal_class.identifier: withRepresentation
focal_class.modifiers: @Override public
focal_class.parameters: (MonolingualTextValue representation)
focal_class.return: FormDocument
focal_class.signature: FormDocument withRepresentation(MonolingualTextValue representation)
focal_class.class_method_signature: FormDocumentImpl.withGrammaticalFeature(ItemIdValue grammaticalFeature)
focal_class.full_signature: @Override public FormDocument withGrammaticalFeature(ItemIdValue grammaticalFeature)
focal_class.identifier: withGrammaticalFeature
focal_class.modifiers: @Override public
focal_class.parameters: (ItemIdValue grammaticalFeature)
focal_class.return: FormDocument
focal_class.signature: FormDocument withGrammaticalFeature(ItemIdValue grammaticalFeature)
focal_class.class_method_signature: FormDocumentImpl.withStatement(Statement statement)
focal_class.full_signature: @Override public FormDocument withStatement(Statement statement)
focal_class.identifier: withStatement
focal_class.modifiers: @Override public
focal_class.parameters: (Statement statement)
focal_class.return: FormDocument
focal_class.signature: FormDocument withStatement(Statement statement)
focal_class.class_method_signature: FormDocumentImpl.withoutStatementIds(Set<String> statementIds)
focal_class.full_signature: @Override public FormDocument withoutStatementIds(Set<String> statementIds)
focal_class.identifier: withoutStatementIds
focal_class.modifiers: @Override public
focal_class.parameters: (Set<String> statementIds)
focal_class.return: FormDocument
focal_class.signature: FormDocument withoutStatementIds(Set<String> statementIds)
focal_class.superclass: extends StatementDocumentImpl
focal_method.body: @JsonIgnore
  	@Override
  	public List<ItemIdValue> getGrammaticalFeatures() {
  		return grammaticalFeatures;
  	}
focal_method.class_method_signature: FormDocumentImpl.getGrammaticalFeatures()
focal_method.full_signature: @JsonIgnore @Override public List<ItemIdValue> getGrammaticalFeatures()
focal_method.identifier: getGrammaticalFeatures
focal_method.modifiers: @JsonIgnore @Override public
focal_method.parameters: ()
focal_method.return: List<ItemIdValue>
focal_method.signature: List<ItemIdValue> getGrammaticalFeatures()