/**
* Copyright (C) 2011 BonitaSoft S.A.
* BonitaSoft, 32 rue Gustave Eiffel - 38000 Grenoble
* 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 2.0 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 org.bonitasoft.web.rest.model;
import org.bonitasoft.web.rest.model.application.ApplicationDefinition;
import org.bonitasoft.web.rest.model.applicationmenu.ApplicationMenuDefinition;
import org.bonitasoft.web.rest.model.applicationpage.ApplicationPageDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.ArchivedCaseDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.ArchivedCaseDocumentDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.ArchivedCommentDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.CaseDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.CaseDocumentDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.CaseVariableDefinition;
import org.bonitasoft.web.rest.model.bpm.cases.CommentDefinition;
import org.bonitasoft.web.rest.model.bpm.connector.ArchivedConnectorInstanceDefinition;
import org.bonitasoft.web.rest.model.bpm.connector.ConnectorInstanceDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ActivityDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ArchivedActivityDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ArchivedFlowNodeDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ArchivedHumanTaskDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ArchivedTaskDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.ArchivedUserTaskDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.FlowNodeDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.HumanTaskDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.TaskDefinition;
import org.bonitasoft.web.rest.model.bpm.flownode.UserTaskDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ActorDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ActorMemberDefinition;
import org.bonitasoft.web.rest.model.bpm.process.CategoryDefinition;
import org.bonitasoft.web.rest.model.bpm.process.DelegationDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessCategoryDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessConnectorDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessConnectorDependencyDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessParameterDefinition;
import org.bonitasoft.web.rest.model.bpm.process.ProcessResolutionProblemDefinition;
import org.bonitasoft.web.rest.model.document.ArchivedDocumentDefinition;
import org.bonitasoft.web.rest.model.document.DocumentDefinition;
import org.bonitasoft.web.rest.model.identity.CustomUserInfoDefinition;
import org.bonitasoft.web.rest.model.identity.CustomUserInfoDefinitionDefinition;
import org.bonitasoft.web.rest.model.identity.CustomUserInfoValueDefinition;
import org.bonitasoft.web.rest.model.identity.GroupDefinition;
import org.bonitasoft.web.rest.model.identity.MembershipDefinition;
import org.bonitasoft.web.rest.model.identity.PersonalContactDataDefinition;
import org.bonitasoft.web.rest.model.identity.ProfessionalContactDataDefinition;
import org.bonitasoft.web.rest.model.identity.RoleDefinition;
import org.bonitasoft.web.rest.model.identity.UserDefinition;
import org.bonitasoft.web.rest.model.monitoring.report.ReportDefinition;
import org.bonitasoft.web.rest.model.platform.PlatformDefinition;
import org.bonitasoft.web.rest.model.portal.page.PageDefinition;
import org.bonitasoft.web.rest.model.portal.profile.BonitaPageDefinition;
import org.bonitasoft.web.rest.model.portal.profile.ProfileDefinition;
import org.bonitasoft.web.rest.model.portal.profile.ProfileEntryDefinition;
import org.bonitasoft.web.rest.model.portal.profile.ProfileMemberDefinition;
import org.bonitasoft.web.rest.model.system.TenantAdminDefinition;
import org.bonitasoft.web.rest.model.tenant.BusinessDataModelDefinition;
import org.bonitasoft.web.toolkit.client.ItemDefinitionFactory;
import org.bonitasoft.web.toolkit.client.common.session.SessionDefinition;
import org.bonitasoft.web.toolkit.client.data.item.ItemDefinition;
/**
* @author Yongtao Guo
*/
public class ModelFactory extends ItemDefinitionFactory {
@Override
public ItemDefinition<?> defineItemDefinitions(final String token) {
// organization
if (UserDefinition.TOKEN.equals(token)) {
return new UserDefinition();
} else if (PersonalContactDataDefinition.TOKEN.equals(token)) {
return new PersonalContactDataDefinition();
} else if (ProfessionalContactDataDefinition.TOKEN.equals(token)) {
return new ProfessionalContactDataDefinition();
} else if (RoleDefinition.TOKEN.equals(token)) {
return new RoleDefinition();
} else if (GroupDefinition.TOKEN.equals(token)) {
return new GroupDefinition();
} else if (MembershipDefinition.TOKEN.equals(token)) {
return new MembershipDefinition();
} else if (CustomUserInfoDefinition.TOKEN.equals(token)) {
return new CustomUserInfoDefinition();
} else if (CustomUserInfoDefinitionDefinition.TOKEN.equals(token)) {
return new CustomUserInfoDefinitionDefinition();
} else if (CustomUserInfoValueDefinition.TOKEN.equals(token)) {
return new CustomUserInfoValueDefinition();
}
// bpm.process
else if (ProcessDefinition.TOKEN.equals(token)) {
return new ProcessDefinition();
} else if (ProcessConnectorDefinition.TOKEN.equals(token)) {
return new ProcessConnectorDefinition();
} else if (ProcessConnectorDependencyDefinition.TOKEN.equals(token)) {
return new ProcessConnectorDependencyDefinition();
} else if (ProcessCategoryDefinition.TOKEN.equals(token)) {
return new ProcessCategoryDefinition();
} else if (ActorDefinition.TOKEN.equals(token)) {
return new ActorDefinition();
} else if (ActorMemberDefinition.TOKEN.equals(token)) {
return new ActorMemberDefinition();
} else if (CategoryDefinition.TOKEN.equals(token)) {
return new CategoryDefinition();
} else if (DelegationDefinition.TOKEN.equals(token)) {
return new DelegationDefinition();
} else if (ProcessResolutionProblemDefinition.TOKEN.equals(token)) {
return new ProcessResolutionProblemDefinition();
}else if (ProcessParameterDefinition.TOKEN.equals(token)) {
return new ProcessParameterDefinition();
}
// bpm.cases
else if (CaseDefinition.TOKEN.equals(token)) {
return new CaseDefinition();
} else if (CommentDefinition.TOKEN.equals(token)) {
return new CommentDefinition();
} else if (ArchivedCommentDefinition.TOKEN.equals(token)) {
return new ArchivedCommentDefinition();
} else if (ArchivedCaseDefinition.TOKEN.equals(token)) {
return new ArchivedCaseDefinition();
} else if (CaseVariableDefinition.TOKEN.equals(token)) {
return new CaseVariableDefinition();
} else if (CaseDocumentDefinition.TOKEN.equals(token)) {
return new CaseDocumentDefinition();
} else if (ArchivedCaseDocumentDefinition.TOKEN.equals(token)) {
return new CaseDocumentDefinition();
}
// bpm.flownode
else if (FlowNodeDefinition.TOKEN.equals(token)) {
return new FlowNodeDefinition();
} else if (ActivityDefinition.TOKEN.equals(token)) {
return new ActivityDefinition();
} else if (TaskDefinition.TOKEN.equals(token)) {
return new TaskDefinition();
} else if (HumanTaskDefinition.TOKEN.equals(token)) {
return new HumanTaskDefinition();
} else if (UserTaskDefinition.TOKEN.equals(token)) {
return new UserTaskDefinition();
} else if (ConnectorInstanceDefinition.TOKEN.equals(token)) {
return new ConnectorInstanceDefinition();
}
// bpm.flownode.archive
else if (ArchivedFlowNodeDefinition.TOKEN.equals(token)) {
return new ArchivedFlowNodeDefinition();
} else if (ArchivedActivityDefinition.TOKEN.equals(token)) {
return new ArchivedActivityDefinition();
} else if (ArchivedTaskDefinition.TOKEN.equals(token)) {
return new ArchivedTaskDefinition();
} else if (ArchivedHumanTaskDefinition.TOKEN.equals(token)) {
return new ArchivedHumanTaskDefinition();
} else if (ArchivedUserTaskDefinition.TOKEN.equals(token)) {
return new ArchivedUserTaskDefinition();
} else if (ArchivedConnectorInstanceDefinition.TOKEN.equals(token)) {
return new ArchivedConnectorInstanceDefinition();
}
// system
else if (ProfileDefinition.TOKEN.equals(token)) {
return new ProfileDefinition();
} else if (BonitaPageDefinition.TOKEN.equals(token)) {
return new BonitaPageDefinition();
} else if (ProfileEntryDefinition.TOKEN.equals(token)) {
return new ProfileEntryDefinition();
} else if (ProfileMemberDefinition.TOKEN.equals(token)) {
return new ProfileMemberDefinition();
} else if (SessionDefinition.TOKEN.equals(token)) {
return new SessionDefinition();
} else if (TenantAdminDefinition.TOKEN.equals(token)) {
return new TenantAdminDefinition();
}
// monitoring
else if (ReportDefinition.TOKEN.equals(token)) {
return new ReportDefinition();
}
// platform
else if (PlatformDefinition.TOKEN.equals(token)) {
return new PlatformDefinition();
}
// documents
else if (DocumentDefinition.TOKEN.equals(token)) {
return new DocumentDefinition();
} else if (ArchivedDocumentDefinition.TOKEN.equals(token)) {
return new ArchivedDocumentDefinition();
}
// Pages
else if (PageDefinition.TOKEN.equals(token)) {
return new PageDefinition();
}
//Applications
else if (ApplicationDefinition.TOKEN.equals(token)) {
return new ApplicationDefinition();
}
else if (ApplicationPageDefinition.TOKEN.equals(token)) {
return new ApplicationPageDefinition();
}
else if (ApplicationMenuDefinition.TOKEN.equals(token)) {
return new ApplicationMenuDefinition();
}
//tenant
else if (BusinessDataModelDefinition.TOKEN.equals(token)) {
return new BusinessDataModelDefinition();
}
// default
else {
return null;
}
}
}