
org.holoeverywhere.addon.IAddon Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of addon-facebook Show documentation
Show all versions of addon-facebook Show documentation
Facebook SDK special for using with HoloEverywhere library
The newest version!
package org.holoeverywhere.addon;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.HashMap;
import java.util.Map;
import org.holoeverywhere.HoloEverywhere;
import org.holoeverywhere.util.WeaklyMap;
public abstract class IAddon {
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Addon {
public boolean inhert() default false;
public int weight() default -1;
}
private static final Map, IAddon> sAddonsMap = new HashMap, IAddon>();
@SuppressWarnings("unchecked")
public static T addon(Class clazz) {
try {
T t = (T) sAddonsMap.get(clazz);
if (t == null) {
t = clazz.newInstance();
sAddonsMap.put(clazz, t);
}
return t;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static T addon(String classname) {
Class clazz = makeAddonClass(classname);
return addon(clazz);
}
@SuppressWarnings("unchecked")
public static Class makeAddonClass(String classname) {
if (classname.contains(".")) {
try {
return (Class) Class.forName(classname);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
} else {
return makeAddonClass(HoloEverywhere.PACKAGE + ".addon.Addon" + classname);
}
}
public static , V> Z obtain(Class clazz, V object) {
return addon(clazz).obtain(object);
}
public static , V> Z obtain(String classname, V object) {
return addon(classname).obtain(object);
}
private final Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy