/*
*
* This is a simple Content Management System (CMS)
* Copyright (C) 2010 Imran M Yousuf (imyousuf@smartitengineering.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.smartitengineering.cms.api.factory.workspace;
import com.smartitengineering.cms.api.common.TemplateType;
import com.smartitengineering.cms.api.content.ContentId;
import com.smartitengineering.cms.api.content.template.ContentCoProcessor;
import com.smartitengineering.cms.api.content.template.FieldValidator;
import com.smartitengineering.cms.api.content.template.RepresentationGenerator;
import com.smartitengineering.cms.api.content.template.VariationGenerator;
import com.smartitengineering.cms.api.type.ValidatorType;
import com.smartitengineering.cms.api.workspace.ContentCoProcessorTemplate;
import com.smartitengineering.cms.api.workspace.RepresentationTemplate;
import com.smartitengineering.cms.api.workspace.ResourceTemplate;
import com.smartitengineering.cms.api.workspace.Sequence;
import com.smartitengineering.cms.api.workspace.SequenceId;
import com.smartitengineering.cms.api.workspace.ValidatorTemplate;
import com.smartitengineering.cms.api.workspace.VariationTemplate;
import com.smartitengineering.cms.api.workspace.Workspace;
import com.smartitengineering.cms.api.workspace.WorkspaceId;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
/**
*
* @author imyousuf
*/
public interface WorkspaceAPI {
String getGlobalNamespace();
WorkspaceId createWorkspaceId(String globalNamespace, String name);
WorkspaceId createWorkspaceId(String name);
WorkspaceId createWorkspace(String name);
WorkspaceId createWorkspace(String globalNamespace, String name);
WorkspaceId createWorkspace(WorkspaceId workspaceId);
RepresentationTemplate putRepresentationTemplate(WorkspaceId to, String name, TemplateType templateType,
InputStream stream) throws
IOException;
RepresentationTemplate putRepresentationTemplate(WorkspaceId to, String name, TemplateType templateType, byte[] data);
RepresentationTemplate getRepresentationTemplate(WorkspaceId id, String name);
void delete(RepresentationTemplate template);
void delete(VariationTemplate template);
VariationTemplate putVariationTemplate(WorkspaceId to, String name, TemplateType templateType, InputStream stream)
throws IOException;
VariationTemplate putVariationTemplate(WorkspaceId to, String name, TemplateType templateType, byte[] data);
VariationTemplate getVariationTemplate(WorkspaceId id, String name);
void delete(ContentCoProcessorTemplate template);
ContentCoProcessorTemplate putContentCoProcessorTemplate(WorkspaceId to, String name, TemplateType templateType,
InputStream stream) throws IOException;
ContentCoProcessorTemplate putContentCoProcessorTemplate(WorkspaceId to, String name, TemplateType templateType,
byte[] data);
ContentCoProcessorTemplate getContentCoProcessorTemplate(WorkspaceId id, String name);
ContentCoProcessor getContentCoProcessor(WorkspaceId id, String name);
public ContentCoProcessorTemplate getContentCoProcessorTemplate(WorkspaceId id, String name,
boolean searchInFriendlies);
public RepresentationTemplate getRepresentationTemplate(WorkspaceId workspaceId, String name,
boolean searchInFriendlies);
public ValidatorTemplate getValidatorTemplate(WorkspaceId id, String name, boolean searchInFriendlies);
public VariationTemplate getVariationTemplate(WorkspaceId workspaceId, String name, boolean searchInFriendlies);
RepresentationGenerator getRepresentationGenerator(WorkspaceId id, String name);
VariationGenerator getVariationGenerator(WorkspaceId id, String name);
FieldValidator getFieldValidator(WorkspaceId id, String name);
ContentCoProcessor getContentCoProcessor(ContentCoProcessorTemplate template);
RepresentationGenerator getRepresentationGenerator(RepresentationTemplate template);
VariationGenerator getVariationGenerator(VariationTemplate template);
FieldValidator getFieldValidator(ValidatorTemplate template);
ContentCoProcessor getContentCoProcessor(WorkspaceId id, String name, boolean searchInFriendlies);
RepresentationGenerator getRepresentationGenerator(WorkspaceId id, String name, boolean searchInFriendlies);
VariationGenerator getVariationGenerator(WorkspaceId id, String name, boolean searchInFriendlies);
FieldValidator getFieldValidator(WorkspaceId id, String name, boolean searchInFriendlies);
WorkspaceId getWorkspaceIdIfExists(String name);
WorkspaceId getWorkspaceIdIfExists(WorkspaceId workspaceId);
Workspace getWorkspace(WorkspaceId workspaceId);
Collection<Workspace> getWorkspaces();
public Collection<WorkspaceId> getFriendlies(WorkspaceId workspaceId);
public void addFriend(WorkspaceId to, WorkspaceId... workspaceIds);
public void removeFriend(WorkspaceId from, WorkspaceId workspaceId);
public void removeAllFriendlies(WorkspaceId workspaceId);
public void removeAllRepresentationTemplates(WorkspaceId workspaceId);
public void removeAllVariationTemplates(WorkspaceId workspaceId);
public void removeAllContentCoProcessorTemplates(WorkspaceId workspaceId);
enum ResourceSortCriteria {
BY_NAME,
BY_DATE,}
public Collection<String> getRepresentationNames(WorkspaceId id);
public Collection<String> getVariationNames(WorkspaceId id);
public Collection<String> getRepresentationNames(WorkspaceId id, String startPoint, int count);
public Collection<String> getVariationNames(WorkspaceId id, String startPoint, int count);
public Collection<String> getRepresentationNames(WorkspaceId id, ResourceSortCriteria criteria);
public Collection<String> getVariationNames(WorkspaceId id, ResourceSortCriteria criteria);
public Collection<String> getContentCoProcessorNames(WorkspaceId id);
public Collection<String> getContentCoProcessorNames(WorkspaceId id, String startPoint, int count);
public Collection<String> getContentCoProcessorNames(WorkspaceId id, ResourceSortCriteria criteria);
public Collection<String> getContentCoProcessorNames(WorkspaceId id, ResourceSortCriteria criteria, String startPoint,
int count);
public Collection<String> getRepresentationNames(WorkspaceId id, ResourceSortCriteria criteria, String startPoint,
int count);
public Collection<String> getVariationNames(WorkspaceId id, ResourceSortCriteria criteria, String startPoint,
int count);
public String getEntityTagValueForResourceTemplate(ResourceTemplate resourceTemplate);
public Collection<ContentId> getRootContents(WorkspaceId workspaceId);
public void addRootContent(WorkspaceId to, ContentId... contentIds);
public void removeRootContent(WorkspaceId from, ContentId contentId);
public void removeAllRootContents(WorkspaceId workspaceId);
ValidatorTemplate putValidatorTemplate(WorkspaceId to, String name, ValidatorType templateType, InputStream stream)
throws IOException;
ValidatorTemplate putValidatorTemplate(WorkspaceId to, String name, ValidatorType templateType, byte[] data);
void delete(ValidatorTemplate template);
public ValidatorTemplate getValidatorTemplate(WorkspaceId workspaceId, String name);
public void removeAllValidatorTemplates(WorkspaceId workspaceId);
public Collection<String> getValidatorNames(WorkspaceId id);
public Collection<String> getValidatorNames(WorkspaceId id, String startPoint, int count);
public Collection<String> getValidatorNames(WorkspaceId id, ResourceSortCriteria criteria);
public Collection<String> getValidatorNames(WorkspaceId id, ResourceSortCriteria criteria, String startPoint,
int count);
public String getEntityTagValueForValidatorTemplate(ValidatorTemplate validatorTemplate);
public Sequence putSequence(WorkspaceId workspaceId, String name, long initialValue);
public long modifySequenceValue(Sequence sequence, long delta);
public Sequence getSequence(WorkspaceId workspaceId, String name);
public void deleteSequence(WorkspaceId workspaceId, String name);
public Collection<Sequence> getSequencesForWorkspace(WorkspaceId workspaceId);
public void reIndex(WorkspaceId workspaceId);
public void reIndex(SequenceId seqId);
public SequenceId createSequenceId(WorkspaceId workspaceId, String name);
public void deleteWorkspace(WorkspaceId workspaceId);
}