Andre språk: replaceText (svensk)
04.06.2018 10:30:24
replaceText
replaceText
var result = false;
var String = Java.type("java.lang.String");
var StringBuilder = Java.type("java.lang.StringBuilder");
var System = Java.type("java.lang.System");
var Schema = Java.type("se.altrusoft.entitymachine.schema.Schema");
var PropertyType = Java.type("se.altrusoft.entitymachine.schema.PropertyType");
var Entity = Java.type("se.altrusoft.entitymachine.entity.Entity");
var schema = Schema.getInstance();
var replaceIn = params.get("property")[0];
var toReplace = params.get("replace")[0];
var replaceWith = params.get("with")[0];
function replaceString(propertyValue, toReplace, replaceWith) {
switch (propertyValue.getValueType()) {
case PropertyType.ValueType.STRING:
case PropertyType.ValueType.URL:
var original = propertyValue.getValue();
var replaced = original.replace(toReplace, replaceWith);
if (!replaced.equals(original)) {
propertyValue.setValue(replaced);
result = true;
}
break;
case PropertyType.ValueType.TEXT:
var texts = propertyValue.getValue();
var textIter = texts.entrySet().iterator();
while (textIter.hasNext()) {
var textEntry = textIter.next();
var original = textEntry.getValue();
var replaced = original.replace(toReplace, replaceWith);
if (!replaced.equals(original)) {
texts.put(textEntry.getKey(), replaced);
result = true;
}
}
break;
default:
break;
}
}
function doReplace(anEntity) {
var propIter = anEntity.getProperties().entrySet().iterator();
while (propIter.hasNext()) {
var entry = propIter.next();
var propertyTypeName = entry.getKey();
logger.info("Property: " + propertyTypeName);
if (propertyTypeName.equals(replaceIn)) {
var valueIter = entry.getValue().iterator();
while (valueIter.hasNext()) {
replaceString(valueIter.next(), toReplace, replaceWith);
}
} else {
var propertyType = schema.propertyType(propertyTypeName);
if (propertyType != null
&& propertyType.getValueType().equals(
PropertyType.ValueType.ENTITY)) {
var valueIter = entry.getValue().iterator();
while (valueIter.hasNext()) {
var value = valueIter.next().getValue();
if (value.getClass().equals(Entity.class)) {
doReplace(value);
}
}
}
}
}
}
doReplace(entity);
result;
0072fb12-72b8-4ac4-b681-385e52dec7d4
SYSTEM
root
04.06.2018 10:30:24
Erstatt | Lagret | Lagret av |
---|