Package com.thoughtworks.qdox.model

Examples of com.thoughtworks.qdox.model.JavaClass


        if (destFile.exists()) {
            //Iterate over all beans & compare
            Collection beans = ejbUtils.getBeans(getMetadata());
            File sourceFile = null;
            for (Iterator iterator = beans.iterator(); iterator.hasNext();) {
                JavaClass javaClass = (JavaClass) iterator.next();
                sourceFile = getSourceFile(javaClass);
                if (destFile.lastModified() < sourceFile.lastModified()) {
                    System.out.println("dirty source = " + sourceFile.getAbsolutePath());
                    dirty = true;
                    break;
View Full Code Here


            return null;
        }

        JavaField field;
        JavaMethod method;
        JavaClass retVal = createDynamicJavaClass(getDestinationClassname(metadata),
                getDestinationPackage(metadata), null, getMetadataProvider());
        retVal.setModifiers(new String[] { "public" });
        if (getEjbUtils().isMessageDrivenBean(metadata)) {
            field = new JavaField(new Type(String.class.getName()), "DESTINATION_JNDI_NAME");
            field.setModifiers(new String[] { "private", "final", "static" });
            retVal.addField(field);
            field = new JavaField(new Type(String.class.getName()), "CONNECTION_FACTORY_JNDI_NAME");
            field.setModifiers(new String[] { "private", "final", "static" });
            retVal.addField(field);
        }
        if (isCachehomes()) {
            if (getEjbUtils().isMessageDrivenBean(metadata)) {
                field = new JavaField(new Type("javax.jms.Queue"), "cachedQueue");
                field.setModifiers(new String[] { "private", "static" });
                retVal.addField(field);
                field = new JavaField(new Type("javax.jms.QueueConnectionFactory"), "cachedConnectionFactory");
                field.setModifiers(new String[] { "private", "static" });
                retVal.addField(field);
            } else {
                if (hasRemoteView(metadata)) {
                    field = new JavaField(new Type(getRemoteHomeInterfacePlugin().getVirtualType(metadata)
                            .toString()), "cachedRemoteHome");
                    field.setModifiers(new String[] { "private", "static" });
                    retVal.addField(field);
                }
                if (hasLocalView(metadata)) {
                    field = new JavaField(new Type(getLocalHomeInterfacePlugin().getVirtualType(metadata)
                            .toString()), "cachedHome");
                    field.setModifiers(new String[] { "private", "static" });
                    retVal.addField(field);
                }
            }
        }

        method = new JavaMethod(getDestinationClassname(metadata));
        method.setConstructor(true);
        method.setModifiers(new String[] { "private" });
        retVal.addMethod(method);

        if (getEjbUtils().isMessageDrivenBean(metadata)) {
            method = new JavaMethod("getQueue");
            method.setModifiers(new String[] { "public", "static" });
            method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
            method.setReturns(new Type("javax.jms.Queue"));
            retVal.addMethod(method);
            method = new JavaMethod("getQueue");
            method.setModifiers(new String[] { "public", "static" });
            method.setParameters(new JavaParameter[] { new JavaParameter(new Type("java.util.Hashtable"),
                    "environment") });
            method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
            method.setReturns(new Type("javax.jms.Queue"));
            retVal.addMethod(method);
            method = new JavaMethod("getQueueConnection");
            method.setModifiers(new String[] { "public", "static" });
            method.setExceptions(new Type[] { new Type("javax.naming.NamingException"),
                    new Type("javax.jms.JMSException") });
            method.setReturns(new Type("javax.jms.QueueConnection"));
            retVal.addMethod(method);
            method = new JavaMethod("getQueueConnection");
            method.setModifiers(new String[] { "public", "static" });
            method.setParameters(new JavaParameter[] { new JavaParameter(new Type("java.util.Hashtable"),
                    "environment") });
            method.setExceptions(new Type[] { new Type("javax.naming.NamingException"),
                    new Type("javax.jms.JMSException") });
            method.setReturns(new Type("javax.jms.QueueConnection"));
            retVal.addMethod(method);
        } else {
            if (hasRemoteView(metadata)) {
                method = new JavaMethod("getHome");
                method.setModifiers(new String[] { "public", "static" });
                method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
                method
                        .setReturns(new Type(getRemoteHomeInterfacePlugin().getVirtualType(metadata)
                                .toString()));
                retVal.addMethod(method);
                method = new JavaMethod("getHome");
                method.setModifiers(new String[] { "public", "static" });
                method.setParameters(new JavaParameter[] { new JavaParameter(new Type("java.util.Hashtable"),
                        "env") });
                method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
                method
                        .setReturns(new Type(getRemoteHomeInterfacePlugin().getVirtualType(metadata)
                                .toString()));
                retVal.addMethod(method);
            }
            if (hasLocalView(metadata)) {
                method = new JavaMethod("getLocalHome");
                method.setModifiers(new String[] { "public", "static" });
                method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
                method
                        .setReturns(new Type(getLocalHomeInterfacePlugin().getVirtualType(metadata)
                                .toString()));
                retVal.addMethod(method);
                method = new JavaMethod("getLocalHome");
                method.setModifiers(new String[] { "public", "static" });
                method.setParameters(new JavaParameter[] { new JavaParameter(new Type("java.util.Hashtable"),
                        "env") });
                method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
                method
                        .setReturns(new Type(getLocalHomeInterfacePlugin().getVirtualType(metadata)
                                .toString()));
                retVal.addMethod(method);
            }
            method = new JavaMethod("lookupHome");
            method.setModifiers(new String[] { "private", "static" });
            method.setParameters(new JavaParameter[] {
                    new JavaParameter(new Type("java.util.Hashtable"), "env"),
                    new JavaParameter(new Type("java.lang.String"), "jndiName"),
                    new JavaParameter(new Type("java.lang.Class"), "narrowTo") });
            method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
            method.setReturns(new Type("java.lang.Object"));
            retVal.addMethod(method);
        }

        method = new JavaMethod("lookup");
        method.setModifiers(new String[] { "public", "static" });
        method.setParameters(new JavaParameter[] { new JavaParameter(new Type("java.util.Hashtable"), "env"),
                new JavaParameter(new Type("java.lang.String"), "jndiName") });
        method.setExceptions(new Type[] { new Type("javax.naming.NamingException") });
        method.setReturns(new Type("java.lang.Object"));
        retVal.addMethod(method);

        if (isIncludeGUID()) {
            method = new JavaMethod("generateGUID");
            method.setModifiers(new String[] { "public", "final", "static" });
            method.setParameters(new JavaParameter[] {

            new JavaParameter(new Type("java.lang.Object"), "o") });

            method.setReturns(new Type("java.lang.String"));
            retVal.addMethod(method);
            field = new JavaField(new Type("java.lang.String"), "hexServerIP");
            field.setModifiers(new String[] { "private", "static" });
            retVal.addField(field);
            field = new JavaField(new Type("java.security.SecureRandom"), "seeder");
            field.setModifiers(new String[] { "private", "final", "static" });
            retVal.addField(field);
            method = new JavaMethod("hexFormat");
            method.setModifiers(new String[] { "private", "static" });
            method.setParameters(new JavaParameter[] {

            new JavaParameter(new Type("byte", 1), "value"), new JavaParameter(new Type("int"), "length") });

            method.setReturns(new Type("java.lang.String"));
            retVal.addMethod(method);
            method = new JavaMethod("hexFormat");
            method.setModifiers(new String[] { "private", "static" });
            method.setParameters(new JavaParameter[] {

            new JavaParameter(new Type("int"), "value"), new JavaParameter(new Type("int"), "length") });

            method.setReturns(new Type("java.lang.String"));
            retVal.addMethod(method);
        }

        return new JavaClass[] { retVal };
    }
View Full Code Here

        return new JavaClass[] { retVal };
    }

    public boolean shouldGenerate(Object metadata) {
        JavaClass javaClass = (JavaClass) metadata;
        EjbUtilTag utilTag = (EjbUtilTag) javaClass.getTagByName(TagLibrary.EJB_UTIL);
        boolean generate = ejbUtils.shouldGenerate(metadata);
        generate = generate && ((utilTag == null) || (utilTag.isGenerate()));
        if (generate) generate = isDestinationDirty(javaClass);
        if (generate && verbose) System.out.println(
                "Generating Lookup Object for " + javaClass.getName());
        return generate;
    }
View Full Code Here

    public Collection getBeans(final Collection metadata, final int beanType) {
        return CollectionUtils.select(metadata,
            new Predicate() {
                public boolean evaluate(Object meta) {
                    JavaClass javaClass = (JavaClass) meta;
                    return hasFlag(getBeanType(javaClass), beanType);
                }
            });
    }
View Full Code Here

                }
            });
    }

    public boolean shouldGenerate(Object metadata) {
        JavaClass javaClass = (JavaClass) metadata;
        boolean isEjb = isEJB(javaClass);
        EjbBeanTag beanTag = (EjbBeanTag) javaClass.getTagByName(TagLibrary.EJB_BEAN);
        boolean ignore = (beanTag != null) && !beanTag.isGenerate();
        return isEjb && !ignore;
    }
View Full Code Here

                // list.addAll(Arrays.asList(fields[i].getTagsByName(tagName)));
            }
        }

        if (hasFlag(findFlags, TAG_FIND_RECURSIVE)) {
            JavaClass superclass = javaClass.getSuperJavaClass();

            // THIS IS A HACK AROUND A BUG THAT MUST BE SOLVED!!!
            // SOMETIMES A CLASS RETURNS ITSELF AS SUPER ?!?!?!?!?!
            if ((superclass != null) && (superclass != javaClass)) {
                findTagsByNameRecursive(list, superclass, tagName, findFlags);
View Full Code Here

    private boolean isEjbRefType(String viewType, int desiredView) {
        return hasFlag(getViewType(viewType), desiredView);
    }

    public JavaClass findEjbRef(String ejbName, EjbBeanResolver beanResolver) {
        JavaClass javaClass = beanResolver.findEjbByName(ejbName);

        if (javaClass == null) {
            throw new Error("Couldn't find named ejb: " + ejbName);
        }
View Full Code Here

    public Collection getSecurityRoles(Collection metadata) {
        Collection roleTags = new ArrayList();
        Collection ejbBeans = getBeans(metadata);

        for (Iterator iter = ejbBeans.iterator(); iter.hasNext();) {
            JavaClass javaClass = (JavaClass) iter.next();
            roleTags.addAll(Arrays.asList(javaClass.getTagsByName(TagLibrary.EJB_PERMISSION)));
            JavaMethod[] methods = javaClass.getMethods();

            for (int i = 0; i < methods.length; i++) {
                if (methods[i].getTagByName(TagLibrary.EJB_PERMISSION) != null) {
                    int methodType = getMethodType(methods[i]);

                    if ((methodType != IFACE_METHOD_CREATE) && (methodType != IFACE_METHOD_COMPONENT)) {
                        throw getErrorWithTagLocation(methods[i].getTagByName(TagLibrary.EJB_PERMISSION),
                            "Can't mark a method permission on a non interface or create method");
                    }
                }

                roleTags.addAll(Arrays.asList(methods[i].getTagsByName(TagLibrary.EJB_PERMISSION)));
            }

            if (isEntityBean(javaClass)) {
                // get roles from finders
                roleTags.addAll(Arrays.asList(javaClass.getTagsByName(TagLibrary.EJB_FINDER)));

                // and from pk field ( if any )
                roleTags.addAll(Arrays.asList(javaClass.getTagsByName(TagLibrary.EJB_PK)));
            }

            // and from extra security roles
            roleTags.addAll(Arrays.asList(javaClass.getTagsByName(TagLibrary.EJB_SECURITY_ROLES)));
        }

        Collection roles = new TreeSet();

        for (Iterator iter = roleTags.iterator(); iter.hasNext();) {
View Full Code Here

    public RelationManager createRelationManager(Collection metadata) {
        // Select concrete CMP Beans
        Collection cmpBeans = CollectionUtils.select(getBeans(metadata, BEAN_CMP),
                new Predicate() {
                    public boolean evaluate(Object arg0) {
                        JavaClass javaClass = (JavaClass) arg0;
                        boolean retVal = shouldGenerate(javaClass);

                        if (log.isDebugEnabled()) {
                            log.debug(javaClass.getFullyQualifiedName() +
                                (retVal ? " is a concrete bean" : " isn't a concrete bean"));
                        }

                        return retVal;
                    }
                });

        RelationManagerImpl manager = new RelationManagerImpl();

        for (Iterator iter = cmpBeans.iterator(); iter.hasNext();) {
            JavaClass javaClass = (JavaClass) iter.next();

            // Get hierarchy methods
            JavaMethod[] methods = javaClass.getMethods(true);

            for (int i = 0; i < methods.length; i++) {
                if (hasFlag(getMethodMetadata(javaClass, methods[i]), METADATA_METHOD_RELATION_FIELD)) {
                    // We support the same relation 'name' repeated when we have a uni-direccional
                    // relation and for the same method
View Full Code Here

     * @see QDoxAttributeInterceptor#processMethodAttribute(JavaMethod, Attribute)
     */
    public Attribute processMethodAttribute( final JavaMethod method,
                                             final Attribute attribute )
    {
        final JavaClass clazz = method.getParentClass();
        final String name = attribute.getName();
        if( name.equals( "dna.configuration" ) ||
            name.equals( "dna.parameters" ) )
        {
            return processConfigurationAttribute( clazz, attribute );
        }
        else if( name.equals( "dna.dependency" ) )
        {
            final Properties parameters = new Properties();
            final String type = attribute.getParameter( "type", null );
            if( null == type )
            {
                final String message =
                    "dna.dependency attribute on class " +
                    clazz.getFullyQualifiedName() +
                    " must specify the parameter 'type'";
                throw new IllegalArgumentException( message );
            }
            final String resolvedType = resolveType( clazz, type );
            parameters.setProperty( "type", resolvedType );
View Full Code Here

TOP

Related Classes of com.thoughtworks.qdox.model.JavaClass

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.