js-getter-prefix and js-setter-prefix compiler options
Allows the names of the getter/setter functions generated for JS to be customized. If Royale is targeting an existing framework that uses different names (such as get_ instead of get__), this ensures that subclassing works as expected.
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
index 2c193bc..f14a956 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
@@ -181,13 +181,12 @@
INamespaceDecorationNode ns = ((FunctionNode)getterNode).getActualNamespaceNode();
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.GETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatGetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
}
write(ASEmitterTokens.SPACE);
write(ASEmitterTokens.EQUAL);
@@ -241,18 +240,16 @@
INamespaceDecorationNode ns = ((FunctionNode)setterNode).getActualNamespaceNode();
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.SETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatSetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
if (isBindable) {
write(JSRoyaleEmitterTokens.BINDABLE_PREFIX);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(getEmitter().formatPrivateName(definition.getQualifiedName(), baseName, true));
+ write(fjs.formatSetter(fjs.formatPrivateName(definition.getQualifiedName(), baseName, true)));
} else {
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
}
}
write(ASEmitterTokens.SPACE);
@@ -274,8 +271,7 @@
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSEmitterTokens.PROTOTYPE);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
write(ASEmitterTokens.SPACE);
write(ASEmitterTokens.EQUAL);
write(ASEmitterTokens.SPACE);
@@ -293,8 +289,7 @@
write(ASEmitterTokens.SPACE);
write(ASEmitterTokens.THIS);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
write(ASEmitterTokens.PAREN_OPEN);
write(ASEmitterTokens.PAREN_CLOSE);
writeNewline(ASEmitterTokens.SEMICOLON);
@@ -308,8 +303,7 @@
write(ASEmitterTokens.THIS);
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSRoyaleEmitterTokens.BINDABLE_PREFIX);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(getEmitter().formatPrivateName(definition.getQualifiedName(), baseName, true));
+ write(fjs.formatSetter(fjs.formatPrivateName(definition.getQualifiedName(), baseName, true)));
write(ASEmitterTokens.PAREN_OPEN);
write("value");
write(ASEmitterTokens.PAREN_CLOSE);
@@ -396,13 +390,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.GETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatGetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
}
wroteGetter = true;
}
@@ -429,13 +422,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.GETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatGetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
}
wroteGetter = true;
}
@@ -457,13 +449,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.SETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatSetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
}
}
else if (getterNode != null/* && getterNode.getDefinition().isOverride()*/)
@@ -491,13 +482,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.SETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatSetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
}
}
}
@@ -594,13 +584,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri , JSRoyaleEmitterTokens.GETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri , fjs.formatGetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
}
write(ASEmitterTokens.SPACE);
write(ASEmitterTokens.EQUAL);
@@ -624,13 +613,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.SETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatSetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
}
write(ASEmitterTokens.SPACE);
write(ASEmitterTokens.EQUAL);
@@ -708,13 +696,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.GETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatGetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(baseName);
+ write(fjs.formatGetter(baseName));
}
}
if (setterNode != null)
@@ -732,13 +719,12 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(project);
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
//String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, JSRoyaleEmitterTokens.SETTER_PREFIX.getToken() + baseName, true));
+ write(JSRoyaleEmitter.formatNamespacedProperty(p.uri, fjs.formatSetter(baseName), true));
}
else
{
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(baseName);
+ write(fjs.formatSetter(baseName));
}
}
write(ASEmitterTokens.BLOCK_CLOSE);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
index e5a1ab2..0b98f44 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
@@ -156,8 +156,7 @@
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSGoogEmitterTokens.SUPERCLASS);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(rnodeDef.getBaseName());
+ write(fjs.formatSetter(rnodeDef.getBaseName()));
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSEmitterTokens.APPLY);
write(ASEmitterTokens.PAREN_OPEN);
@@ -171,8 +170,7 @@
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSGoogEmitterTokens.SUPERCLASS);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- write(rnodeDef.getBaseName());
+ write(fjs.formatGetter(rnodeDef.getBaseName()));
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSEmitterTokens.APPLY);
write(ASEmitterTokens.PAREN_OPEN);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
index d21aca8..e3e8b21 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -164,9 +164,9 @@
className = getEmitter().formatQualifiedName(definition.getQualifiedName());
if (isComplexInitializedStatic)
{
- write(className
- + ASEmitterTokens.MEMBER_ACCESS.getToken() + JSRoyaleEmitterTokens.GETTER_PREFIX.getToken());
- writeFieldName(node, fjs);
+ write(className);
+ write(ASEmitterTokens.MEMBER_ACCESS.getToken());
+ write(fjs.formatGetter(getFieldName(node, fjs)));
endMapping(node.getNameExpressionNode());
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
@@ -187,7 +187,7 @@
write(className);
writeToken(ASEmitterTokens.COMMA);
writeToken(ASEmitterTokens.BLOCK_OPEN);
- writeFieldName(node, fjs);
+ write(getFieldName(node, fjs));
writeToken(ASEmitterTokens.COLON);
if (node.isConst())
write("{ value: value, writable: false }");
@@ -204,9 +204,9 @@
writeNewline(ASEmitterTokens.SEMICOLON);
if (!node.isConst())
{
- write(className
- + ASEmitterTokens.MEMBER_ACCESS.getToken() + JSRoyaleEmitterTokens.SETTER_PREFIX.getToken());
- writeFieldName(node, fjs);
+ write(className);
+ write(ASEmitterTokens.MEMBER_ACCESS.getToken());
+ write(fjs.formatSetter(getFieldName(node, fjs)));
write(ASEmitterTokens.SPACE);
writeToken(ASEmitterTokens.EQUAL);
write(ASEmitterTokens.FUNCTION);
@@ -221,7 +221,7 @@
write(className);
writeToken(ASEmitterTokens.COMMA);
writeToken(ASEmitterTokens.BLOCK_OPEN);
- writeFieldName(node, fjs);
+ write(getFieldName(node, fjs));
writeToken(ASEmitterTokens.COLON);
write("{ value: value, writable: true }");
write(ASEmitterTokens.BLOCK_CLOSE);
@@ -239,7 +239,7 @@
}
write(className);
write(ASEmitterTokens.MEMBER_ACCESS);
- writeFieldName(node, fjs);
+ write(getFieldName(node, fjs));
write(ASEmitterTokens.SEMICOLON);
writeNewline();
writeNewline();
@@ -257,7 +257,7 @@
{
((IJSGoogDocEmitter) getEmitter().getDocEmitter()).emitFieldDoc(node, def, getProject());
}
- writeFieldName(node, fjs);
+ write(getFieldName(node, fjs));
writeToken(ASEmitterTokens.COLON);
writeNewline(ASEmitterTokens.BLOCK_OPEN, true);
write(ASEmitterTokens.GET);
@@ -265,8 +265,7 @@
write(ASEmitterTokens.SPACE);
write(className);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
- writeFieldName(node, fjs);
+ write(fjs.formatGetter(getFieldName(node, fjs)));
if (!node.isConst())
{
writeNewline(ASEmitterTokens.COMMA);
@@ -275,8 +274,7 @@
write(ASEmitterTokens.SPACE);
write(className);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- writeFieldName(node, fjs);
+ write(fjs.formatSetter(getFieldName(node, fjs)));
}
writeNewline(ASEmitterTokens.COMMA);
write("configurable: true");
@@ -480,7 +478,7 @@
}
}
- private void writeFieldName(IVariableNode node, JSRoyaleEmitter fjs)
+ private String getFieldName(IVariableNode node, JSRoyaleEmitter fjs)
{
String qname = node.getName();
IDefinition nodeDef = node.getDefinition();
@@ -492,9 +490,9 @@
INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(getProject());
fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
String s = nsDef.getURI();
- write(JSRoyaleEmitter.formatNamespacedProperty(s, qname, false));
+ return JSRoyaleEmitter.formatNamespacedProperty(s, qname, false);
}
- else write(qname);
+ return qname;
}
public boolean emitFieldInitializer(IVariableNode node)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
index fdb18a3..19c57db 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
@@ -563,6 +563,7 @@
private boolean writeLeftSide(IMemberAccessExpressionNode node, IASNode leftNode, IASNode rightNode)
{
+ JSRoyaleEmitter fjs = (JSRoyaleEmitter) getEmitter();
if (!(leftNode instanceof ILanguageIdentifierNode && ((ILanguageIdentifierNode) leftNode)
.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.THIS))
{
@@ -584,11 +585,14 @@
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSGoogEmitterTokens.SUPERCLASS);
write(ASEmitterTokens.MEMBER_ACCESS);
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
if (rightDef != null)
- write(rightDef.getBaseName());
+ {
+ write(fjs.formatGetter(rightDef.getBaseName()));
+ }
else
- write(((GetterNode) rightNode).getName());
+ {
+ write(fjs.formatGetter(((IGetterNode) rightNode).getName()));
+ }
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSEmitterTokens.APPLY);
write(ASEmitterTokens.PAREN_OPEN);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/SuperCallEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/SuperCallEmitter.java
index 285773b..3472752 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/SuperCallEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/SuperCallEmitter.java
@@ -53,6 +53,7 @@
public void emit(IASNode node, String type)
{
+ JSRoyaleEmitter fjs = (JSRoyaleEmitter) getEmitter();
IFunctionNode fnode = (node instanceof IFunctionNode) ? (IFunctionNode) node
: null;
IFunctionCallNode fcnode = (node instanceof IFunctionCallNode) ? (FunctionCallNode) node
@@ -102,10 +103,13 @@
write(JSGoogEmitterTokens.SUPERCLASS);
write(ASEmitterTokens.MEMBER_ACCESS);
if (fnode.getNodeID() == ASTNodeID.GetterID)
- write(JSRoyaleEmitterTokens.GETTER_PREFIX);
+ {
+ write(fjs.formatGetter(fnode.getName()));
+ }
else
- write(JSRoyaleEmitterTokens.SETTER_PREFIX);
- write(fnode.getName());
+ {
+ write(fjs.formatSetter(fnode.getName()));
+ }
write(ASEmitterTokens.MEMBER_ACCESS);
write(JSEmitterTokens.APPLY);
write(ASEmitterTokens.PAREN_OPEN);
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
index 471994c..8906935 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
@@ -305,6 +305,34 @@
return Joiner.on("\n").join(finalLines);
}
+ public String formatGetter(String name) {
+ String prefix = JSRoyaleEmitterTokens.GETTER_PREFIX.getToken();
+ RoyaleJSProject project = (RoyaleJSProject) getWalker().getProject();
+ if (project.config != null)
+ {
+ String configPrefix = project.config.getJsGetterPrefix();
+ if(configPrefix != null && configPrefix.length() > 0)
+ {
+ prefix = configPrefix;
+ }
+ }
+ return prefix + name;
+ }
+
+ public String formatSetter(String name) {
+ String prefix = JSRoyaleEmitterTokens.SETTER_PREFIX.getToken();
+ RoyaleJSProject project = (RoyaleJSProject) getWalker().getProject();
+ if (project.config != null)
+ {
+ String configPrefix = project.config.getJsSetterPrefix();
+ if(configPrefix != null && configPrefix.length() > 0)
+ {
+ prefix = configPrefix;
+ }
+ }
+ return prefix + name;
+ }
+
public BindableEmitter getBindableEmitter()
{
return bindableEmitter;
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
index 53ee681..3d92bd2 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
@@ -499,4 +499,42 @@
inlineConstants = value;
}
+ //
+ // 'js-getter-prefix'
+ //
+
+ protected String jsGetterPrefix = "";
+
+ public String getJsGetterPrefix()
+ {
+ return jsGetterPrefix;
+ }
+
+ @Config
+ @Mapping("js-getter-prefix")
+ public void setJsGetterPrefix(ConfigurationValue cv, String value)
+ throws ConfigurationException
+ {
+ jsGetterPrefix = value;
+ }
+
+ //
+ // 'js-setter-prefix'
+ //
+
+ protected String jsSetterPrefix = "";
+
+ public String getJsSetterPrefix()
+ {
+ return jsSetterPrefix;
+ }
+
+ @Config
+ @Mapping("js-setter-prefix")
+ public void setJsSetterPrefix(ConfigurationValue cv, String value)
+ throws ConfigurationException
+ {
+ jsSetterPrefix = value;
+ }
+
}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogConfiguration.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogConfiguration.java
index 5c00370..009ea52 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogConfiguration.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/driver/js/goog/JSGoogConfiguration.java
@@ -1008,4 +1008,42 @@
inlineConstants = value;
}
+ //
+ // 'js-getter-prefix'
+ //
+
+ protected String jsGetterPrefix = "";
+
+ public String getJsGetterPrefix()
+ {
+ return jsGetterPrefix;
+ }
+
+ @Config
+ @Mapping("js-getter-prefix")
+ public void setJsGetterPrefix(ConfigurationValue cv, String value)
+ throws ConfigurationException
+ {
+ jsGetterPrefix = value;
+ }
+
+ //
+ // 'js-setter-prefix'
+ //
+
+ protected String jsSetterPrefix = "";
+
+ public String getJsSetterPrefix()
+ {
+ return jsSetterPrefix;
+ }
+
+ @Config
+ @Mapping("js-setter-prefix")
+ public void setJsSetterPrefix(ConfigurationValue cv, String value)
+ throws ConfigurationException
+ {
+ jsSetterPrefix = value;
+ }
+
}