spoon.processing.ProcessorPropertiesImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spoon-core Show documentation
Show all versions of spoon-core Show documentation
Spoon is a tool for meta-programming, analysis and transformation of Java programs.
/*
* SPDX-License-Identifier: (MIT OR CECILL-C)
*
* Copyright (C) 2006-2023 INRIA and contributors
*
* Spoon is available either under the terms of the MIT License (see LICENSE-MIT.txt) or the Cecill-C License (see LICENSE-CECILL-C.txt). You as the user are entitled to choose the terms under which to adopt Spoon.
*/
package spoon.processing;
import org.apache.commons.lang3.ClassUtils;
import java.util.HashMap;
import java.util.Map;
public class ProcessorPropertiesImpl implements ProcessorProperties {
private final Map _properties = new HashMap<>();
@Override
public T get(Class type, String name) {
if (type.isPrimitive()) {
type = (Class) ClassUtils.primitiveToWrapper(type);
}
T result = (T) _properties.get(name);
if (result == null) {
return null;
} else {
return (type.isAssignableFrom(result.getClass())) ? result : null;
}
}
@Override
public void set(String name, Object o) {
_properties.put(name, o);
}
/**
* Gets the corresponding processor name.
*/
@Override
public String getProcessorName() {
return (String) _properties.get("__NAME__");
}
}