当前位置: 首页>>代码示例>>Java>>正文


Java ClassDescriptor.getExtentClasses方法代码示例

本文整理汇总了Java中org.apache.ojb.broker.metadata.ClassDescriptor.getExtentClasses方法的典型用法代码示例。如果您正苦于以下问题:Java ClassDescriptor.getExtentClasses方法的具体用法?Java ClassDescriptor.getExtentClasses怎么用?Java ClassDescriptor.getExtentClasses使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.ojb.broker.metadata.ClassDescriptor的用法示例。


在下文中一共展示了ClassDescriptor.getExtentClasses方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setCascadingDelete

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * Allows to change the <em>cascading delete</em> behavior of all references of the
 * specified class while this transaction is in use - if the specified class is an
 * interface, abstract class or class with "extent" classes the cascading flag will
 * be propagated.
 *
 * @param target The class to change cascading delete behavior of all references.
 * @param doCascade If <em>true</em> cascading delete is enabled, <em>false</em> disabled.
 */
public void setCascadingDelete(Class target, boolean doCascade)
{
    ClassDescriptor cld = getBroker().getClassDescriptor(target);
    List extents = cld.getExtentClasses();
    Boolean result = doCascade ? Boolean.TRUE : Boolean.FALSE;
    setCascadingDelete(cld, result);
    if(extents != null && extents.size() > 0)
    {
        for(int i = 0; i < extents.size(); i++)
        {
            Class extent =  (Class) extents.get(i);
            ClassDescriptor tmp = getBroker().getClassDescriptor(extent);
            setCascadingDelete(tmp, result);
        }
    }
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:26,代码来源:TransactionImpl.java

示例2: firstFoundTableName

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * try to find the first none null table name for the given class-descriptor.
 * If cld has extent classes, all of these cld's searched for the first none null
 * table name.
 */
private static String firstFoundTableName(PersistenceBroker brokerForClass, ClassDescriptor cld)
{
    String name = null;
    if (!cld.isInterface() && cld.getFullTableName() != null)
    {
        return cld.getFullTableName();
    }
    if (cld.isExtent())
    {
        Collection extentClasses = cld.getExtentClasses();
        for (Iterator iterator = extentClasses.iterator(); iterator.hasNext();)
        {
            name = firstFoundTableName(brokerForClass, brokerForClass.getClassDescriptor((Class) iterator.next()));
            // System.out.println("## " + cld.getClassNameOfObject()+" - name: "+name);
            if (name != null) break;
        }
    }
    return name;
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:25,代码来源:SequenceManagerHelper.java

示例3: getFullTableNames

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
private HashSet getFullTableNames(ClassDescriptor desc, DescriptorRepository repos)
{
    String tableName;
    HashSet tableNamesSet = new HashSet();
    Collection extents = desc.getExtentClasses();

    tableName = desc.getFullTableName();
    if (tableName != null)
    {
        tableNamesSet.add(tableName);
    }
    for (Iterator it = extents.iterator(); it.hasNext();)
    {
        Class extClass = (Class) it.next();
        ClassDescriptor extDesc = repos.getDescriptorFor(extClass);
        tableName = extDesc.getFullTableName();
        if (tableName != null)
        {
            tableNamesSet.add(tableName);
        }
    }
    return tableNamesSet;
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:24,代码来源:BatchConnection.java

示例4: getExtentClasses

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * Searches the class descriptor for the ojbConcrete class attribute
 * if it finds the concrete class attribute, append a where clause which
 * specifies we can load all classes that are this type or extents of this type.
 * @param cld
 * @return the extent classes
 */
private static Collection getExtentClasses(ClassDescriptor cld)
{
    /**
     * 1. check if this class has a ojbConcreteClass attribute
     */
    FieldDescriptor fd = cld.getFieldDescriptorByName(ClassDescriptor.OJB_CONCRETE_CLASS);
    Collection classes = new HashSet();  // use same class only once
    if (fd != null)
    {
        classes.add(cld.getClassOfObject().getName());
    }

    /**
     * 2. if this class has extents/is an extent search for all extents
     */
    if (cld.isExtent())
    {
        Vector extentClasses = cld.getExtentClasses();

        /**
         * 3. get all extents for this class
         */
        for (int i = 0; i < extentClasses.size(); i++)
        {
            Class ec = (Class) extentClasses.get(i);
            ClassDescriptor extCld = cld.getRepository().getDescriptorFor(ec);
            classes.addAll(getExtentClasses(extCld));
        }
    }

    return classes;
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:40,代码来源:QueryFactory.java

示例5: getMaxId

import org.apache.ojb.broker.metadata.ClassDescriptor; //导入方法依赖的package包/类
/**
 * Search down all extent classes and return max of all found
 * PK values.
 */
public static long getMaxId(PersistenceBroker brokerForClass, Class topLevel, FieldDescriptor original) throws PersistenceBrokerException
{
    long max = 0;
    long tmp;
    ClassDescriptor cld = brokerForClass.getClassDescriptor(topLevel);

    // if class is not an interface / not abstract we have to search its directly mapped table
    if (!cld.isInterface() && !cld.isAbstract())
    {
        tmp = getMaxIdForClass(brokerForClass, cld, original);
        if (tmp > max)
        {
            max = tmp;
        }
    }
    // if class is an extent we have to search through its subclasses
    if (cld.isExtent())
    {
        Vector extentClasses = cld.getExtentClasses();
        for (int i = 0; i < extentClasses.size(); i++)
        {
            Class extentClass = (Class) extentClasses.get(i);
            if (cld.getClassOfObject().equals(extentClass))
            {
                throw new PersistenceBrokerException("Circular extent in " + extentClass +
                        ", please check the repository");
            }
            else
            {
                // fix by Mark Rowell
                // Call recursive
                tmp = getMaxId(brokerForClass, extentClass, original);
            }
            if (tmp > max)
            {
                max = tmp;
            }
        }
    }
    return max;
}
 
开发者ID:KualiCo,项目名称:ojb,代码行数:46,代码来源:SequenceManagerHelper.java


注:本文中的org.apache.ojb.broker.metadata.ClassDescriptor.getExtentClasses方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。