blob: 1b7c8a519cd42c1db37d24f676d208cdd2ac9730 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010-2014, Abel Hegedus, Istvan Rath and Daniel Varro
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-v20.html.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.viatra.modelobfuscator.xml
import com.google.common.base.Preconditions
import com.google.common.collect.HashMultimap
import com.google.common.collect.Multimap
import java.util.Set
/**
* Schema configuration is used to select which attributes and text content
* is obfuscated in an XML document.
*
* <p/>Text content of tags in the obfuscateableTags set are obfuscated.
* <p/>Values of the specified attributes of specified tags in the obfuscateableAttributesOfTags
* multimap are obfiscated.
*
* @author Abel Hegedus
*
*/
class XMLSchemaConfiguration {
private Multimap<String,String> obfuscateableAttributesOfTags
private Set<String> obfuscateableTagContents
new(Multimap<String,String> tagAttributes, Set<String> tags){
obfuscateableAttributesOfTags = HashMultimap.create
obfuscateableAttributesOfTags.putAll(tagAttributes)
obfuscateableTagContents = newHashSet()
obfuscateableTagContents.addAll(tags)
}
/**
* Collection of attributes that should be obfuscated in the given tag.
*/
def getObfuscateableAttributeNames(String tagName){
Preconditions.checkArgument(tagName != null, "Tag name cannot be null!")
return obfuscateableAttributesOfTags.get(tagName)
}
/**
* Returns true if the text content of the tag should be obfuscated.
*/
def isTagContentObfuscateable(String tagName){
Preconditions.checkArgument(tagName != null, "Tag name cannot be null!")
return obfuscateableTagContents.contains(tagName)
}
}