package com.constellio.model.entities.security.global;
import java.util.ArrayList;
import java.util.List;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.RecordWrapper;
import com.constellio.model.entities.schemas.MetadataSchemaTypes;
public class SolrGlobalGroup extends RecordWrapper implements GlobalGroup {
public static final String SCHEMA_TYPE = "globalGroup";
public static final String DEFAULT_SCHEMA = SCHEMA_TYPE + "_default";
public static final String CODE = "code";
public static final String NAME = "name";
public static final String COLLECTIONS = "collections";
public static final String PARENT = "parent";
public static final String STATUS = "status";
public static final String HIERARCHY = "hierarchy";
public static final String LOCALLY_CREATED = "locallyCreated";
public SolrGlobalGroup(Record record, MetadataSchemaTypes types) {
super(record, types, SCHEMA_TYPE);
}
@Override
public String getCode() {
return get(CODE);
}
public SolrGlobalGroup setCode(String code) {
set(CODE, code);
return this;
}
@Override
public String getName() {
return get(NAME);
}
public SolrGlobalGroup setName(String name) {
set(NAME, name);
return this;
}
@Override
public List<String> getUsersAutomaticallyAddedToCollections() {
return getList(COLLECTIONS);
}
public SolrGlobalGroup setUsersAutomaticallyAddedToCollections(List<String> collections) {
set(COLLECTIONS, collections);
return this;
}
@Override
public String getParent() {
return get(PARENT);
}
public SolrGlobalGroup setParent(String parent) {
set(PARENT, parent);
return this;
}
@Override
public GlobalGroupStatus getStatus() {
return get(STATUS);
}
public SolrGlobalGroup setStatus(GlobalGroupStatus status) {
set(STATUS, status);
return this;
}
public String getHierarchy() {
return get(HIERARCHY);
}
public SolrGlobalGroup setHierarchy(String path) {
set(HIERARCHY, path);
return this;
}
@Override
public GlobalGroup withName(String name) {
return setName(name);
}
@Override
public GlobalGroup withUsersAutomaticallyAddedToCollections(List<String> users) {
return setUsersAutomaticallyAddedToCollections(users);
}
@Override
public GlobalGroup withStatus(GlobalGroupStatus status) {
return setStatus(status);
}
@Override
public GlobalGroup withRemovedCollection(String collection) {
List<String> collections = new ArrayList<>(getUsersAutomaticallyAddedToCollections());
collections.remove(collection);
return setUsersAutomaticallyAddedToCollections(collections);
}
@Override
public boolean isLocallyCreated() {
return Boolean.TRUE.equals(get(LOCALLY_CREATED));
}
@Override
public GlobalGroup withLocallyCreated(boolean locallyCreated) {
RecordWrapper recordWrapper = set(LOCALLY_CREATED, (Object) locallyCreated);
return (GlobalGroup) recordWrapper;
}
}