blob: 401c8218225a22b8721fc8e0777077998eaf3ec7 (
plain) (
blame)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/*******************************************************************************
* Copyright (c) 2008, 2010 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode;
import org.eclipse.jpt.core.resource.orm.OrmFactory;
import org.eclipse.jpt.core.resource.orm.XmlClassReference;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkCustomizer;
import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkCustomizer;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
public class OrmEclipseLinkCustomizer extends AbstractOrmXmlContextNode
implements EclipseLinkCustomizer
{
protected final XmlCustomizerHolder resource;
protected String specifiedCustomizerClass;
protected String defaultCustomizerClass;
public OrmEclipseLinkCustomizer(OrmTypeMapping parent, XmlCustomizerHolder resource, JavaEclipseLinkCustomizer javaCustomizer) {
super(parent);
this.resource = resource;
this.defaultCustomizerClass = getJavaCustomizerClass(javaCustomizer);
this.specifiedCustomizerClass = getResourceCustomizerClass();
}
public char getCustomizerClassEnclosingTypeSeparator() {
return '$';
}
public String getCustomizerClass() {
return this.specifiedCustomizerClass == null ? this.defaultCustomizerClass : this.specifiedCustomizerClass;
}
public String getDefaultCustomizerClass() {
return this.defaultCustomizerClass;
}
protected void setDefaultCustomizerClass(String newDefaultCustomizerClass) {
String oldDefaultCustomizerClass = this.defaultCustomizerClass;
this.defaultCustomizerClass = newDefaultCustomizerClass;
firePropertyChanged(DEFAULT_CUSTOMIZER_CLASS_PROPERTY, oldDefaultCustomizerClass, newDefaultCustomizerClass);
}
public String getSpecifiedCustomizerClass() {
return this.specifiedCustomizerClass;
}
public void setSpecifiedCustomizerClass(String newCustomizerClass) {
String oldCustomizerClass = this.specifiedCustomizerClass;
this.specifiedCustomizerClass = newCustomizerClass;
if (oldCustomizerClass != newCustomizerClass) {
if (this.getResourceCustomizer() != null) {
this.getResourceCustomizer().setClassName(newCustomizerClass);
if (this.getResourceCustomizer().isUnset()) {
removeResourceCustomizer();
}
}
else if (newCustomizerClass != null) {
addResourceCustomizer();
getResourceCustomizer().setClassName(newCustomizerClass);
}
}
firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
}
protected void setSpecifiedCustomizerClass_(String newCustomizerClass) {
String oldCustomizerClass = this.specifiedCustomizerClass;
this.specifiedCustomizerClass = newCustomizerClass;
firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
}
protected XmlClassReference getResourceCustomizer() {
return this.resource.getCustomizer();
}
protected void addResourceCustomizer() {
this.resource.setCustomizer(OrmFactory.eINSTANCE.createXmlClassReference());
}
protected void removeResourceCustomizer() {
this.resource.setCustomizer(null);
}
// **************** updating **************************************
protected void update(JavaEclipseLinkCustomizer javaCustomizer) {
setDefaultCustomizerClass(getJavaCustomizerClass(javaCustomizer));
setSpecifiedCustomizerClass_(getResourceCustomizerClass());
}
protected String getJavaCustomizerClass(JavaEclipseLinkCustomizer javaCustomizer) {
return (javaCustomizer == null) ? null : javaCustomizer.getFullyQualifiedCustomizerClass();
}
protected String getResourceCustomizerClass() {
XmlClassReference resource = getResourceCustomizer();
return (resource == null) ? null : resource.getClassName();
}
// **************** validation **************************************
public TextRange getValidationTextRange() {
XmlClassReference resource = getResourceCustomizer();
return resource == null ? null : resource.getClassNameTextRange();
}
}
|