![JAR search and dependency download from the Maven repository](/logo.png)
net.lecousin.framework.serialization.rules.RenameAttribute Maven / Gradle / Ivy
The newest version!
package net.lecousin.framework.serialization.rules;
import java.util.List;
import net.lecousin.framework.serialization.SerializationClass;
import net.lecousin.framework.serialization.SerializationContext;
import net.lecousin.framework.serialization.SerializationContextPattern;
import net.lecousin.framework.serialization.SerializationClass.Attribute;
/**
* This rule change the name of a specific attribute in a class.
*/
public class RenameAttribute implements SerializationRule {
/** Constructor. */
public RenameAttribute(SerializationContextPattern.OnClassAttribute contextPattern, String newName) {
this.contextPattern = contextPattern;
this.newName = newName;
}
/** Constructor. */
public RenameAttribute(Class> type, String originalName, String newName) {
this(new SerializationContextPattern.OnClassAttribute(type, originalName), newName);
}
private SerializationContextPattern.OnClassAttribute contextPattern;
private String newName;
@Override
public boolean apply(SerializationClass type, SerializationContext context, List rules, boolean serializing) {
Attribute a = contextPattern.getAttribute(type, context);
if (a != null)
a.renameTo(newName);
return false;
}
@Override
public boolean isEquivalent(SerializationRule rule) {
if (!(rule instanceof RenameAttribute)) return false;
RenameAttribute r = (RenameAttribute)rule;
return contextPattern.isEquivalent(r.contextPattern);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy