package com.constellio.model.services.search.query.logical.condition; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import com.constellio.model.entities.schemas.MetadataSchema; import com.constellio.model.entities.schemas.MetadataSchemaType; import com.constellio.model.services.schemas.SchemaUtils; public class SchemaFilters extends CollectionFilters implements DataStoreFilters { MetadataSchema schema; MetadataSchemaType schemaType; public SchemaFilters(MetadataSchemaType schemaType) { super(schemaType.getCollection(), false); this.schema = schemaType.getDefaultSchema(); this.schemaType = schemaType; } public SchemaFilters(MetadataSchema schema) { super(schema.getCollection(), false); this.schema = schema; } @Override public List<String> getFilterQueries(boolean hasSecurityFilters) { List<String> filters = new ArrayList<>(); filters.add("collection_s:" + collection); if (schemaType != null) { filters.add("schema_s:" + schemaType.getCode() + "_*"); } else { filters.add("schema_s:" + schema.getCode()); } return filters; } @Deprecated public MetadataSchema getSchema() { return schema; } public String getSchemaType() { return new SchemaUtils().getSchemaTypeCode(schema.getCode()); } public MetadataSchemaType getSchemaTypeFilter() { return schemaType; } public MetadataSchema getSchemaFilter() { return schema; } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } @Override public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } @Override public String toString() { return "SchemaFilters(" + (schemaType == null ? schema.getCode() : schemaType.getCode()) + ")"; } }