/
RObjectType.java
75 lines (64 loc) · 2.9 KB
/
RObjectType.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.evolveum.midpoint.repo.sql.data.common.other;
import com.evolveum.midpoint.repo.sql.data.common.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
/**
* @author lazyman
*/
public enum RObjectType {
CONNECTOR(RConnector.class, ConnectorType.class),
CONNECTOR_HOST(RConnectorHost.class, ConnectorHostType.class),
GENERIC_OBJECT(RGenericObject.class, GenericObjectType.class),
OBJECT(RObject.class, ObjectType.class),
VALUE_POLICY(RValuePolicy.class, ValuePolicyType.class),
RESOURCE(RResource.class, ResourceType.class),
SHADOW(RShadow.class, ShadowType.class),
ROLE(RRole.class, RoleType.class),
SYSTEM_CONFIGURATION(RSystemConfiguration.class, SystemConfigurationType.class),
TASK(RTask.class, TaskType.class),
USER(RUser.class, UserType.class),
REPORT(RReport.class, ReportType.class),
REPORT_OUTPUT(RReportOutput.class, ReportOutputType.class),
OBJECT_TEMPLATE(RObjectTemplate.class, ObjectTemplateType.class),
NODE(RNode.class, NodeType.class),
ORG(ROrg.class, OrgType.class),
ABSTRACT_ROLE(RAbstractRole.class, AbstractRoleType.class),
FOCUS(RFocus.class, FocusType.class),
SECURITY_POLICY(RSecurityPolicy.class, SecurityPolicyType.class),
LOOKUP_TABLE(RLookupTable.class, LookupTableType.class),
ACCESS_CERTIFICATION_DEFINITION(RAccessCertificationDefinition.class, AccessCertificationDefinitionType.class),
ACCESS_CERTIFICATION_CAMPAIGN(RAccessCertificationCampaign.class, AccessCertificationCampaignType.class),
SEQUENCE(RSequence.class, SequenceType.class),
SERVICE(RService.class, ServiceType.class),
FORM(RForm.class, FormType.class),
CASE(RCase.class, CaseType.class),
FUNCTION_LIBRARY(RFunctionLibrary.class, FunctionLibraryType.class),
OBJECT_COLLECTION(RObjectCollection.class, ObjectCollectionType.class);
private Class<? extends RObject> clazz;
private Class<? extends ObjectType> jaxbClass;
RObjectType(Class<? extends RObject> clazz, Class<? extends ObjectType> jaxbClass) {
this.clazz = clazz;
this.jaxbClass = jaxbClass;
}
public Class<? extends RObject> getClazz() {
return clazz;
}
public Class<? extends ObjectType> getJaxbClass() {
return jaxbClass;
}
public static <T extends RObject> RObjectType getType(Class<T> clazz) {
for (RObjectType type : RObjectType.values()) {
if (type.getClazz().equals(clazz)) {
return type;
}
}
throw new IllegalArgumentException("Couldn't find type for class '" + clazz + "'.");
}
public static <T extends ObjectType> RObjectType getByJaxbType(Class<T> clazz) {
for (RObjectType type : RObjectType.values()) {
if (type.getJaxbClass().equals(clazz)) {
return type;
}
}
throw new IllegalArgumentException("Couldn't find type for class '" + clazz + "'.");
}
}