/** Returns the component definition of the specified class, or null * if not found. * * <p>Note: unlike {@link LanguageDefinition#getComponentDefinition}, * this method doesn't throw ComponentNotFoundException if not found. * It just returns null. * * @param recurse whether to look up the component from {@link #getLanguageDefinition} */ public ComponentDefinition getComponentDefinition(Class cls, boolean recurse) { final ComponentDefinition compdef = _compdefs.get(cls); if (!recurse || compdef != null) return compdef; try { return getLanguageDefinition().getComponentDefinition(cls); } catch (DefinitionNotFoundException ex) { try { // try with shadow element return getLanguageDefinition().getShadowDefinition(cls); } catch (DefinitionNotFoundException eex) { } } return null; }
/** Returns the component definition of the specified name, or null * if not found. * * <p>Note: unlike {@link LanguageDefinition#getComponentDefinition}, * this method doesn't throw ComponentNotFoundException if not found. * It just returns null. * * @param recurse whether to look up the component from {@link #getLanguageDefinition} */ public ComponentDefinition getComponentDefinition(String name, boolean recurse) { final ComponentDefinition compdef = _compdefs.get(name); if (!recurse || compdef != null) return compdef; try { return getLanguageDefinition().getComponentDefinition(name); } catch (DefinitionNotFoundException ex) { } return null; }
private static final LanguageDefinition getLanguageDefinition(NodeInfo node) { for (; node != null; node = node.getParent()) { if (node instanceof ComponentInfo) { LanguageDefinition langdef = ((ComponentInfo) node).getLanguageDefinition(); if (langdef != null) return langdef; } else if (node instanceof PageDefinition) { return ((PageDefinition) node).getLanguageDefinition(); } else if (node instanceof ShadowInfo) { return ((ShadowInfo) node).getLanguageDefinition(); } } return null; }
/** Parses the items as if they are native and they will become a property * rather than child components. */ private void parseAsProperty(PageDefinition pgdef, ComponentInfo compInfo, String name, Collection items, AnnotationHelper annHelper, ConditionImpl cond) throws Exception { final NativeInfo nativeInfo = new NativeInfo(compInfo.getEvaluatorRef(), pgdef.getLanguageDefinition().getNativeDefinition(), ""); //Note: nativeInfo can not be a child. Rather, it will be a property parseItems(pgdef, nativeInfo, items, annHelper, true); compInfo.addProperty(name, nativeInfo, cond); }
/** Adds a component definition belonging to this page definition only. * * <p>It is the same as calling {@link ComponentDefinitionMap#add} * against {@link #getComponentDefinitionMap} */ public void addComponentDefinition(ComponentDefinition compdef) { final LanguageDefinition langdef = compdef.getLanguageDefinition(); if (langdef != null) { final LanguageDefinition ld2 = getLanguageDefinition(); if (langdef != ld2 && !langdef.getDeviceType().equals(ld2.getDeviceType())) throw new UiException("Component definition, " + compdef + ", does not belong to the same device type of the page definition, " + ld2.getDeviceType()); } _compdefs.add(compdef); }
/** Constructs a page by giving the page definition. * * <p>Note: when a page is constructed, it doesn't belong to a desktop * yet. Caller has to invoke {@link #init} to complete * the creation of a page. * Why two phase? Constructor could be called before execution * is activated, but {@link #init} must be called in an execution. * * <p>Also note that {@link #getId} and {@link #getTitle} * are not ready until {@link #init} is called. * * @param pgdef the page definition (never null). */ public PageImpl(PageDefinition pgdef) { constr(pgdef.getLanguageDefinition(), pgdef.getRequestPath(), pgdef.getZScriptLanguage()); _compdefs = pgdef.getComponentDefinitionMap(); _clsresolver = pgdef.getImportedClassResolver(); _clsresolverShared = true; _impclss = pgdef.getImportedClasses(); //NOTE: don't store pgdef since it is not serializable }
final String lang = params.remove("language"); final LanguageDefinition langdef = lang != null ? LanguageDefinition.lookup(lang) : pgdef.getLanguageDefinition(); ComponentDefinition compdef; String templateURI = params.remove("templateURI");
LanguageDefinition parentlang = getLanguageDefinition(parent); if (parentlang == null) parentlang = pgdef.getLanguageDefinition(); final boolean bZkSwitch = isZkSwitch(parent);
final String pref = ns != null ? ns.getPrefix() : ""; final String uri = ns != null ? ns.getURI() : ""; LanguageDefinition langdef = pgdef.getLanguageDefinition(); final String langName = langdef.getName();
final DesktopCtrl desktopCtrl = (DesktopCtrl) desktop; final LanguageDefinition langdef = //default page pagedef != null ? pagedef.getLanguageDefinition() : richlet != null ? richlet.getLanguageDefinition() : null; if (langdef != null)