class ItemDocumentImpl extends TermedStatementDocumentImpl implements ItemDocument {

	@Override
	public ItemDocument withRevisionId(long newRevisionId) {
		return new ItemDocumentImpl(getItemId(),
				labels,	descriptions,
				aliases, claims,
				sitelinks, newRevisionId);
	}

	public  ItemDocumentImpl(
			ItemIdValue id,
			List<MonolingualTextValue> labels,
			List<MonolingualTextValue> descriptions,
			List<MonolingualTextValue> aliases,
			List<StatementGroup> statements,
			List<SiteLink> siteLinks,
			long revisionId);
	@JsonCreator public  ItemDocumentImpl(
			@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("sitelinks") Map<String, SiteLink> sitelinks,
			@JsonProperty("lastrevid") long revisionId,
			@JacksonInject("siteIri") String siteIri);
	protected  ItemDocumentImpl(
			ItemIdValue subject,
			Map<String, MonolingualTextValue> labels,
			Map<String, MonolingualTextValue> descriptions,
			Map<String, List<MonolingualTextValue>> aliases,
			Map<String, List<Statement>> claims, 
			Map<String, SiteLink> siteLinks,
			long revisionId);

}