[535938] Extract EAttribute filtering to a method
Bug: 535938
Change-Id: Id05bdd80e4a935f5a49d4843313d83e90990d86b
Signed-off-by: Balazs Bea <balazs.bea@incquerylabs.com>
diff --git a/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/AbstractModelObfuscator.xtend b/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/AbstractModelObfuscator.xtend
index f8fcd2d..7f1b18f 100644
--- a/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/AbstractModelObfuscator.xtend
+++ b/plugins/org.eclipse.viatra.modelobfuscator.runtime/src/org/eclipse/viatra/modelobfuscator/emf/simple/AbstractModelObfuscator.xtend
@@ -11,15 +11,16 @@
*******************************************************************************/
package org.eclipse.viatra.modelobfuscator.emf.simple
+import com.google.common.base.Preconditions
import java.util.Map
+import org.eclipse.emf.common.util.EList
+import org.eclipse.emf.ecore.EAttribute
import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.emf.ecore.util.EcoreUtil
import org.eclipse.viatra.modelobfuscator.api.ModelObfuscator
import org.eclipse.viatra.modelobfuscator.util.StringObfuscator
-import com.google.common.base.Preconditions
-import org.eclipse.emf.ecore.util.EcoreUtil
-import org.eclipse.emf.common.util.EList
-import org.eclipse.emf.ecore.resource.Resource
abstract class AbstractModelObfuscator implements ModelObfuscator {
protected ResourceSet inputResourceSet
@@ -46,10 +47,7 @@
EcoreUtil.getAllContents(it, true).filter(EObject).forEach [ obj |
// only attributes modified
obj.eClass.EAllAttributes.filter [
- // we don't need (or can't) to modify such attributes
- changeable && !derived && !volatile &&
- // the value must be String then
- EAttributeType.instanceClass == String
+ filterAttribute(it)
].forEach [
val old = obj.eGet(it)
if (many) {
@@ -70,7 +68,14 @@
]
]
}
-
+
+ protected def boolean filterAttribute(EAttribute eAttribute) {
+ // we don't need (or can't) to modify such attributes
+ eAttribute.changeable && !eAttribute.derived && !eAttribute.volatile &&
+ // the value must be String then
+ eAttribute.EAttributeType.instanceClass == String
+ }
+
protected def String modifyData(String data, boolean obfuscate)
/**