/** Removes cookie from the class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void unregisterCookie(Class<?> c, Object cookie) { if ((c == null) || !Node.Cookie.class.isAssignableFrom(c)) { return; } Class<? extends Node.Cookie> nc = c.asSubclass(Node.Cookie.class); // if different cookie is attached to class c stop removing R r = findR(nc); if (r != null) { // remove the cookie r.remove((Node.Cookie)cookie); } unregisterCookie(c.getSuperclass(), cookie); Class[] inter = c.getInterfaces(); for (int i = 0; i < inter.length; i++) { unregisterCookie(inter[i], cookie); } }
/** Attaches cookie to given class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void registerCookie(Class<?> c, Object cookie) { if ((c == null) || !Node.Cookie.class.isAssignableFrom(c)) { return; } Class<? extends Node.Cookie> nc = c.asSubclass(Node.Cookie.class); R r = findR(nc); if (r == null) { r = new R(); map.put(c, r); } r.add((Node.Cookie)cookie); registerCookie(c.getSuperclass(), cookie); Class[] inter = c.getInterfaces(); for (int i = 0; i < inter.length; i++) { registerCookie(inter[i], cookie); } }
R r = findR(clazz);
/** * Unregisters a Factory for given cookie class * @since 2.6 */ public void remove(Class<? extends Node.Cookie> cookieClass, Factory factory) { if (factory == null) { throw new IllegalArgumentException(); } CookieEntry ce = null; synchronized (this) { R r = findR(cookieClass); if (r != null) { Node.Cookie c = r.cookie(); if (c instanceof CookieEntry) { ce = (CookieEntry) c; if (ce.factory == factory) { unregisterCookie(cookieClass, c); } } } } if (ic != null && ce != null) { ic.remove(ce, C.INSTANCE); } fireChangeEvent(); }
if (cookie != null) { synchronized (this) { R r = findR(cookie.getClass()); if (r != null && r.cookies != null) { List<Cookie> arr = r.cookies;
synchronized (this) { for (int i = 0; i < cookieClass.length; i++) { R r = findR(cookieClass[i]);
/** Get a cookie. * * @param clazz the representation class * @return a cookie assignable to the representation class, or <code>null</code> if there is none */ public Node.Cookie getCookie (Class clazz) { Node.Cookie ret = null; synchronized (this) { R r = findR (clazz); if (r == null) { return null; } ret = r.cookie (); } if (ret instanceof CookieEntry) { if (clazz == QUERY_MODE.get ()) { // we expected to be asked for this class // set cookie entry as a result QUERY_MODE.set (ret); ret = null; } else { // unwrap the cookie ret = ((CookieEntry) ret).getCookie(true); } } return ret; }
/** Attaches cookie to given class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void registerCookie (Class c, Node.Cookie cookie) { if ((c == null) || !Node.Cookie.class.isAssignableFrom(c)) return; R r = findR (c); if (r == null) { r = new R (); map.put (c, r); } r.add (cookie); registerCookie (c.getSuperclass (), cookie); Class[] inter = c.getInterfaces (); for (int i = 0; i < inter.length; i++) { registerCookie (inter[i], cookie); } }
/** Get a cookie. * * @param clazz the representation class * @return a cookie assignable to the representation class, or <code>null</code> if there is none */ public Node.Cookie getCookie (Class clazz) { Node.Cookie ret = null; synchronized (this) { R r = findR (clazz); if (r == null) { return null; } ret = r.cookie (); } if (ret instanceof CookieEntry) { if (clazz == QUERY_MODE.get ()) { // we expected to be asked for this class // set cookie entry as a result QUERY_MODE.set (ret); ret = null; } else { // unwrap the cookie ret = ((CookieEntry) ret).getCookie(true); } } return ret; }
/** Removes cookie from the class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void unregisterCookie (Class c, Node.Cookie cookie) { if ( c == null || !Node.Cookie.class.isAssignableFrom(c) ) return; // if different cookie is attached to class c stop removing R r = findR (c); if (r != null) { // remove the cookie r.remove (cookie); } unregisterCookie (c.getSuperclass (), cookie); Class[] inter = c.getInterfaces (); for (int i = 0; i < inter.length; i++) { unregisterCookie (inter[i], cookie); } }
/** Attaches cookie to given class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void registerCookie (Class c, Node.Cookie cookie) { if ((c == null) || !Node.Cookie.class.isAssignableFrom(c)) return; R r = findR (c); if (r == null) { r = new R (); map.put (c, r); } r.add (cookie); registerCookie (c.getSuperclass (), cookie); Class[] inter = c.getInterfaces (); for (int i = 0; i < inter.length; i++) { registerCookie (inter[i], cookie); } }
/** Removes cookie from the class and all its superclasses and * superinterfaces. * * @param c class or null * @param cookie cookie to attach */ private void unregisterCookie (Class c, Node.Cookie cookie) { if ( c == null || !Node.Cookie.class.isAssignableFrom(c) ) return; // if different cookie is attached to class c stop removing R r = findR (c); if (r != null) { // remove the cookie r.remove (cookie); } unregisterCookie (c.getSuperclass (), cookie); Class[] inter = c.getInterfaces (); for (int i = 0; i < inter.length; i++) { unregisterCookie (inter[i], cookie); } }
/** * Unregisters a Factory for given cookie class * @since 2.6 */ public void remove(Class cookieClass, Factory factory) { if (factory == null) { throw new IllegalArgumentException(); } synchronized (this) { R r = findR(cookieClass); if (r != null) { Node.Cookie c = r.cookie(); if (c instanceof CookieEntry) { CookieEntry ce = (CookieEntry)c; if (ce.factory == factory) { unregisterCookie (cookieClass, c); } } } } fireChangeEvent (); }
/** * Unregisters a Factory for given cookie classes * @since 2.6 */ public void remove(Class[] cookieClass, Factory factory) { if (factory == null) { throw new IllegalArgumentException(); } synchronized (this) { for (int i = 0; i < cookieClass.length; i++) { R r = findR(cookieClass[i]); if (r != null) { Node.Cookie c = r.cookie(); if (c instanceof CookieEntry) { CookieEntry ce = (CookieEntry)c; if (ce.factory == factory) { unregisterCookie (cookieClass[i], c); } } } } } fireChangeEvent (); }
/** * Unregisters a Factory for given cookie classes * @since 2.6 */ public void remove(Class[] cookieClass, Factory factory) { if (factory == null) { throw new IllegalArgumentException(); } synchronized (this) { for (int i = 0; i < cookieClass.length; i++) { R r = findR(cookieClass[i]); if (r != null) { Node.Cookie c = r.cookie(); if (c instanceof CookieEntry) { CookieEntry ce = (CookieEntry)c; if (ce.factory == factory) { unregisterCookie (cookieClass[i], c); } } } } } fireChangeEvent (); }
/** * Unregisters a Factory for given cookie class * @since 2.6 */ public void remove(Class cookieClass, Factory factory) { if (factory == null) { throw new IllegalArgumentException(); } synchronized (this) { R r = findR(cookieClass); if (r != null) { Node.Cookie c = r.cookie(); if (c instanceof CookieEntry) { CookieEntry ce = (CookieEntry)c; if (ce.factory == factory) { unregisterCookie (cookieClass, c); } } } } fireChangeEvent (); }