package com.constellio.app.modules.es.model.connectors.http; import static java.util.Arrays.asList; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.constellio.app.modules.es.model.connectors.AuthenticationScheme; import com.constellio.app.modules.es.model.connectors.ConnectorInstance; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.schemas.MetadataSchemaTypes; public class ConnectorHttpInstance extends ConnectorInstance<ConnectorHttpInstance> { public static final String SCHEMA_LOCAL_CODE = "http"; public static final String SCHEMA_CODE = SCHEMA_TYPE + "_" + SCHEMA_LOCAL_CODE; public static final String SEEDS = "seeds"; public static final String ON_DEMANDS = "onDemands"; public static final String INCLUDE_PATTERNS = "includePatterns"; public static final String EXCLUDE_PATTERNS = "excludePatterns"; public static final String NUMBER_OF_JOBS_IN_PARALLEL = "jobsInParallel"; public static final String NUMBER_OF_DOCUMENTS_PER_JOBS = "documentsPerJobs"; public static final String DAYS_BEFORE_REFETCHING = "daysBeforeRefetching"; public static final String MAX_LEVEL = "maxLevel"; public static final String AUTHENTICATION_SCHEME = "authenticationScheme"; public static final String USERNAME = "username"; public static final String PASSWORD = "password"; public static final String DOMAIN = "domain"; public ConnectorHttpInstance(Record record, MetadataSchemaTypes types) { super(record, types, SCHEMA_CODE); } public int getNumberOfJobsInParallel() { return getInteger(NUMBER_OF_JOBS_IN_PARALLEL); } public ConnectorHttpInstance setNumberOfJobsInParallel(int jobsInParallel) { set(NUMBER_OF_JOBS_IN_PARALLEL, jobsInParallel); return this; } public int getDocumentsPerJobs() { return getInteger(NUMBER_OF_DOCUMENTS_PER_JOBS); } public ConnectorHttpInstance setDocumentsPerJobs(int documentsPerJobs) { set(NUMBER_OF_DOCUMENTS_PER_JOBS, documentsPerJobs); return this; } public int getDaysBeforeRefetching() { return getInteger(DAYS_BEFORE_REFETCHING); } public ConnectorHttpInstance setDaysBeforeRefetching(double delayBeforeRefetching) { set(DAYS_BEFORE_REFETCHING, delayBeforeRefetching); return this; } public List<String> getSeedsList() { return StringUtils.isBlank(getSeeds()) ? new ArrayList<String>() : asList(getSeeds().split("\n")); } public String getSeeds() { return get(SEEDS); } public ConnectorHttpInstance setSeeds(String seeds) { set(SEEDS, seeds); return this; } public int getMaxLevel() { return getInteger(MAX_LEVEL); } public ConnectorHttpInstance setMaxLevel(int maxLevel) { set(MAX_LEVEL, maxLevel); return this; } public List<String> getOnDemandsList() { return StringUtils.isBlank(getOnDemands()) ? new ArrayList<String>() : asList(getOnDemands().split("\n")); } public String getOnDemands() { return get(ON_DEMANDS); } public ConnectorHttpInstance setOnDemands(String onDemands) { set(ON_DEMANDS, onDemands); return this; } public String getIncludePatterns() { return get(INCLUDE_PATTERNS); } public ConnectorHttpInstance setIncludePatterns(String includePatterns) { set(INCLUDE_PATTERNS, includePatterns); return this; } public String getExcludePatterns() { return get(EXCLUDE_PATTERNS); } public ConnectorHttpInstance setExcludePatterns(String excludePatterns) { set(EXCLUDE_PATTERNS, excludePatterns); return this; } public AuthenticationScheme getAuthenticationScheme() { return get(AUTHENTICATION_SCHEME); } public ConnectorHttpInstance setAuthenticationScheme(AuthenticationScheme authenticationScheme) { set(AUTHENTICATION_SCHEME, authenticationScheme); return this; } public String getUsername() { return get(USERNAME); } public ConnectorHttpInstance setUsername(String username) { set(USERNAME, username); return this; } public String getPasssword() { return get(PASSWORD); } public ConnectorHttpInstance setPassword(String password) { set(PASSWORD, password); return this; } public String getDomain() { return get(DOMAIN); } public ConnectorHttpInstance setDomain(String domain) { set(DOMAIN, domain); return this; } @Override public ConnectorHttpInstance setCode(String code) { super.setCode(code); return this; } @Override public ConnectorHttpInstance setTitle(String title) { super.setTitle(title); return this; } }