IDEMPIERE-4842 Easier model registration (#893)

* IDEMPIERE-4842 Easier model registration

- Change from https://github.com/atteo/classindex to
https://github.com/classgraph/classgraph, remove annotation processor
config.

- Change service.ranking of DefaultModelFactory to -1 and
service.ranking of AnnotationBasedModelFactory to 0. This give
AnnotationBasedModelFactory higher priority over DefaultModelFactory and
allow plugins to have higher priority over AnnotationBasedModelFactory
with server.ranking of 1 (the common practise before the introduction of
AnnotationBasedModelFactory).

- Added resultset constructor to MTree. This is to allow the use of
MTree with model factory.

- Remove classindex annotation from org.adempiere.base.Model and X_*
model classes.

- Added unit test for table to model class mapping

- AnnotationBasedModelFactory: Change from using annotation processor to
runtime annotation scanning using the classgraph library. The default
setting scans all the X_* model class and travels the inheritance
hierarchy to discover the M* model class. Plugin needs to create a
subclass of AnnotationBasedModelFactory and register it as an OSGi
component to scan the plugin's annotated model classes (the plugin's
custom AnnotationBasedModelFactory component should have service.ranking
> 0).

* IDEMPIERE-4842 Easier model registration

minor refinement

* Minor changes

Co-authored-by: hengsin <hengsin@gmail.com>
This commit is contained in:
Saulo José Gil 2021-09-22 11:42:51 -03:00 committed by GitHub
parent c27b31d6cc
commit 2b4a2be5a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
756 changed files with 256 additions and 1549 deletions

View File

@ -1,4 +0,0 @@
<factorypath>
<factorypathentry kind="WKSPJAR" id="/org.adempiere.base/lib/classindex.jar" enabled="true" runInBatchMode="true"/>
<factorypathentry kind="PLUGIN" id="org.eclipse.jst.ws.annotations.core" enabled="true" runInBatchMode="false"/>
</factorypath>

View File

@ -1,5 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=.apt_generated
org.eclipse.jdt.apt.genTestSrcDir=.apt_generated_tests
org.eclipse.jdt.apt.reconcileEnabled=false

View File

@ -8,7 +8,7 @@ Bundle-ClassPath: .,
lib/commons-validator.jar,
lib/cron4j.jar,
lib/avalon-framework-api.jar,
lib/classindex.jar
lib/classgraph.jar
Export-Package: bsh,
bsh.classpath,
bsh.collection,
@ -38,7 +38,6 @@ Export-Package: bsh,
org.adempiere.print.export,
org.adempiere.process,
org.adempiere.util,
org.atteo.classindex,
org.compiere,
org.compiere.acct,
org.compiere.db,

View File

@ -4,4 +4,5 @@
<service>
<provide interface="org.adempiere.base.IModelFactory"/>
</service>
<property name="service.ranking" type="Integer" value="-1"/>
</scr:component>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" immediate="true" name="org.adempiere.base.AnnotationBasedModelFactory">
<property name="service.ranking" type="Integer" value="-1"/>
<property name="service.ranking" type="Integer" value="0"/>
<service>
<provide interface="org.adempiere.base.IModelFactory"/>
</service>

View File

@ -7,8 +7,7 @@ bin.includes = plugin.xml,\
lib/bsh.jar,\
lib/commons-validator.jar,\
lib/cron4j.jar,\
lib/classindex.jar
lib/classgraph.jar
src.includes = schema/
source.. = src/,\
.apt_generated/
source.. = src/
output.. = target/classes/

View File

@ -44,9 +44,9 @@
<version>4.3.1</version>
</artifactItem>
<artifactItem>
<groupId>org.atteo.classindex</groupId>
<artifactId>classindex</artifactId>
<version>3.4</version>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>4.8.116</version>
</artifactItem>
</artifactItems>
<outputDirectory>lib</outputDirectory>

View File

@ -12,70 +12,151 @@
*****************************************************************************/
package org.adempiere.base;
import org.atteo.classindex.ClassIndex;
import org.compiere.util.CCache;
import org.osgi.framework.Bundle;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import org.compiere.util.CLogger;
import org.osgi.framework.wiring.BundleWiring;
import org.osgi.service.component.ComponentContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import io.github.classgraph.AnnotationInfo;
import io.github.classgraph.ClassGraph;
import io.github.classgraph.ClassInfo;
import io.github.classgraph.ClassInfoList;
import io.github.classgraph.ScanResult;
/**
* Translates table names into model classes having the {@link Model} annotation. Relies on
* {@link DefaultModelFactory} for everything else.
* This factory is designed to have a service rank higher than {@link DefaultModelFactory}, as class
* discovery using SPI is preferred over reflection-based methods.
* @author Saulo Gil
* @author Heng Sin
*/
@Component(immediate = true, service = IModelFactory.class, property = {"service.ranking:Integer=-1"})
@Component(immediate = true, service = IModelFactory.class, property = {"service.ranking:Integer=0"})
public class AnnotationBasedModelFactory extends AbstractModelFactory implements IModelFactory
{
/**
* Table name to class cache
*/
private Map<String,Class<?>> classCache = new HashMap<>();
private Bundle usingBundle;
private final static CLogger s_log = CLogger.getCLogger(AnnotationBasedModelFactory.class);
private CCache<String,Class<?>> classCache = new CCache<String,Class<?>>(null, "ABMF", 100, 120, false, 2000);
/**
* Packages to scan for Core X* classes
*/
private final static String[] CORE_PACKAGES = new String[] {
"org.compiere.model", "compiere.model", "adempiere.model", "org.adempiere.model",
"org.compiere.wf", "org.compiere.print", "org.compiere.impexp",
"org.eevolution.model"
};
/**
* Extension point. Subclasses might override this method in order to have faster
* model class scanning.
* @return array of packages to be accepted during class scanning
* @see ClassGraph#acceptPackagesNonRecursive(String...)
*/
protected String[] getPackages() {
return new String[]{};
}
/**
* Extension point. Provide a list of patterns to match against class names.
* @return array of strings containing patterns
* @see ClassGraph#acceptClasses(String...)
*/
protected String[] getAcceptClassesPatterns() {
String[] patterns = new String[] {"*.X_*"};
return patterns;
}
@Activate
void activate(ComponentContext context)
{
this.usingBundle = context.getUsingBundle();
}
public void activate(ComponentContext context) throws ClassNotFoundException {
long start = System.currentTimeMillis();
ClassLoader classLoader = context.getBundleContext().getBundle().adapt(BundleWiring.class).getClassLoader();
@Override
public Class<?> getClass(String tableName)
{
// search first into cache
Class<?> candidate = classCache.get(tableName);
if (candidate != null)
{
// Object.class indicate no generated PO class for tableName
if (candidate.equals(Object.class))
return null;
ClassGraph graph = new ClassGraph()
.enableAnnotationInfo()
.overrideClassLoaders(classLoader)
.disableJarScanning()
.disableNestedJarScanning()
.disableModuleScanning();
// narrow search to a list of packages
if(isAtCore())
graph.acceptPackagesNonRecursive(CORE_PACKAGES);
else
return candidate;
}
// scan model annotations
BundleWiring wiring = usingBundle.adapt(BundleWiring.class);
for(Class<?> xClass : ClassIndex.getAnnotated(Model.class, wiring.getClassLoader()))
{
Model annotation = xClass.getAnnotation(Model.class);
if(annotation.table().equalsIgnoreCase(tableName))
String[] packages = getPackages();
if(packages==null || packages.length==0)
s_log.warning(this.getClass().getSimpleName() + " should override the getPackages method");
else
graph.acceptPackagesNonRecursive(packages);
}
// narrow search to class names matching a set of patterns
String[] acceptClasses = getAcceptClassesPatterns();
if(acceptClasses!=null && acceptClasses.length > 0)
graph.acceptClasses(acceptClasses);
try (ScanResult scanResult = graph.scan())
{
candidate = xClass;
for(Class<?> mClass : ClassIndex.getSubclasses(xClass, wiring.getClassLoader())) {
if(!mClass.equals(candidate) && candidate.isAssignableFrom(mClass))
// favoring candidates higher in the class hierarchy
candidate = mClass;
}
break;
for (ClassInfo classInfo : scanResult.getClassesWithAnnotation(Model.class)) {
String className = classInfo.getName();
AnnotationInfo annotationInfo = classInfo.getAnnotationInfo(Model.class);
String tableName = (String) annotationInfo.getParameterValues().getValue("table");
Class<?> existing = classCache.get(tableName);
// try to detect M classes only if we found an X class
if(existing == null && className.substring(className.lastIndexOf(".")).startsWith(".X")) {
ClassInfoList subclasses = classInfo.getSubclasses().directOnly();
while(!subclasses.isEmpty()) {
className = subclasses.get(0).getName();
subclasses = subclasses.get(0).getSubclasses().directOnly();
}
}
//Object.class to indicate no PO class for tableName
classCache.put(tableName, candidate == null ? Object.class : candidate);
if(existing==null) {
classCache.put(tableName, classLoader.loadClass(className));
} else if (className.substring(className.lastIndexOf(".")).startsWith(".M")) {
if(existing.getSimpleName().startsWith("X_")) {
classCache.put(tableName, classLoader.loadClass(className));
} else {
Class<?> found = classLoader.loadClass(className);
// replace existing entries only if found class has a lower hierarchy
if(existing.isAssignableFrom(found))
classCache.put(tableName, classLoader.loadClass(className));
}
}
}
}
long end = System.currentTimeMillis();
if (s_log.isLoggable(Level.INFO))
s_log.info(this.getClass().getSimpleName() + " loaded "+classCache.size() +" classes in "
+((end-start)/1000f) + "s");
}
return candidate;
/**
* {@inheritDoc}
*/
@Override
public Class<?> getClass(String tableName) {
return classCache.get(tableName);
}
/**
* Tells whether we're executing code from a subclass of {@link AnnotationBasedModelFactory}.
* @return
*/
private boolean isAtCore() {
return getClass().equals(AnnotationBasedModelFactory.class);
}
}

View File

@ -13,17 +13,16 @@
package org.adempiere.base;
import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.atteo.classindex.IndexAnnotated;
/**
* Automatic model class registration
* @author Saulo Gil
*/
@Target(TYPE)
@IndexAnnotated
@Retention(RetentionPolicy.RUNTIME)
public @interface Model {

View File

@ -161,7 +161,6 @@ public class ModelClassGenerator
addImportClass(java.util.Properties.class);
addImportClass(java.sql.ResultSet.class);
addImportClass("org.atteo.classindex.IndexSubclasses");
if (!packageName.equals("org.compiere.model"))
addImportClass("org.compiere.model.*");
createImports(start);
@ -169,7 +168,6 @@ public class ModelClassGenerator
start.append("/** Generated Model for ").append(tableName).append(NL)
.append(" * @author iDempiere (generated) ").append(NL)
.append(" * @version ").append(Adempiere.MAIN_VERSION).append(" - $Id$ */").append(NL)
.append("@IndexSubclasses").append(NL)
.append("@org.adempiere.base.Model(table=\"").append(tableName).append("\")").append(NL)
.append("public class ").append(className)
.append(" extends PO")

View File

@ -63,6 +63,18 @@ public class MTree extends MTree_Base
super (ctx, AD_Tree_ID, trxName);
} // MTree
/**
* Resultset constructor for model factory.
* Need to call loadNodes explicitly
* @param ctx
* @param rs
* @param trxName
*/
public MTree (Properties ctx, ResultSet rs, String trxName)
{
super(ctx, rs, trxName);
}
/**
* Construct & Load Tree
* @param AD_Tree_ID The tree to build

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AccessLog
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AccessLog")
public class X_AD_AccessLog extends PO implements I_AD_AccessLog, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Alert
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Alert")
public class X_AD_Alert extends PO implements I_AD_Alert, I_Persistent
{

View File

@ -20,13 +20,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AlertProcessor
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AlertProcessor")
public class X_AD_AlertProcessor extends PO implements I_AD_AlertProcessor, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_AlertProcessorLog
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AlertProcessorLog")
public class X_AD_AlertProcessorLog extends PO implements I_AD_AlertProcessorLog, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AlertRecipient
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AlertRecipient")
public class X_AD_AlertRecipient extends PO implements I_AD_AlertRecipient, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AlertRule
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AlertRule")
public class X_AD_AlertRule extends PO implements I_AD_AlertRule, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_AllClients_V
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AllClients_V")
public class X_AD_AllClients_V extends PO implements I_AD_AllClients_V, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_AllUsers_V
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AllUsers_V")
public class X_AD_AllUsers_V extends PO implements I_AD_AllUsers_V, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Archive
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Archive")
public class X_AD_Archive extends PO implements I_AD_Archive, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Attachment
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Attachment")
public class X_AD_Attachment extends PO implements I_AD_Attachment, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AttachmentNote
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AttachmentNote")
public class X_AD_AttachmentNote extends PO implements I_AD_AttachmentNote, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Attribute
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Attribute")
public class X_AD_Attribute extends PO implements I_AD_Attribute, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Attribute_Value
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Attribute_Value")
public class X_AD_Attribute_Value extends PO implements I_AD_Attribute_Value, I_Persistent
{

View File

@ -21,13 +21,11 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
/** Generated Model for AD_AuthorizationAccount
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AuthorizationAccount")
public class X_AD_AuthorizationAccount extends PO implements I_AD_AuthorizationAccount, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AuthorizationCredential
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AuthorizationCredential")
public class X_AD_AuthorizationCredential extends PO implements I_AD_AuthorizationCredential, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_AuthorizationProvider
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AuthorizationProvider")
public class X_AD_AuthorizationProvider extends PO implements I_AD_AuthorizationProvider, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_AuthorizationScopeProv
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_AuthorizationScopeProv")
public class X_AD_AuthorizationScopeProv extends PO implements I_AD_AuthorizationScopeProv, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_BroadcastMessage
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_BroadcastMessage")
public class X_AD_BroadcastMessage extends PO implements I_AD_BroadcastMessage, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ChangeLog
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ChangeLog")
public class X_AD_ChangeLog extends PO implements I_AD_ChangeLog, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Chart
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Chart")
public class X_AD_Chart extends PO implements I_AD_Chart, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ChartDatasource
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ChartDatasource")
public class X_AD_ChartDatasource extends PO implements I_AD_ChartDatasource, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Client
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Client")
public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_ClientInfo
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ClientInfo")
public class X_AD_ClientInfo extends PO implements I_AD_ClientInfo, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ClientShare
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ClientShare")
public class X_AD_ClientShare extends PO implements I_AD_ClientShare, I_Persistent
{

View File

@ -20,14 +20,12 @@ package org.compiere.model;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Color
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Color")
public class X_AD_Color extends PO implements I_AD_Color, I_Persistent
{

View File

@ -20,14 +20,12 @@ package org.compiere.model;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Column
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Column")
public class X_AD_Column extends PO implements I_AD_Column, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Column_Access
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Column_Access")
public class X_AD_Column_Access extends PO implements I_AD_Column_Access, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_CtxHelp
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_CtxHelp")
public class X_AD_CtxHelp extends PO implements I_AD_CtxHelp, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_CtxHelpMsg
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_CtxHelpMsg")
public class X_AD_CtxHelpMsg extends PO implements I_AD_CtxHelpMsg, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_CtxHelpSuggestion
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_CtxHelpSuggestion")
public class X_AD_CtxHelpSuggestion extends PO implements I_AD_CtxHelpSuggestion, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Desktop
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Desktop")
public class X_AD_Desktop extends PO implements I_AD_Desktop, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_DesktopWorkbench
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_DesktopWorkbench")
public class X_AD_DesktopWorkbench extends PO implements I_AD_DesktopWorkbench, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Document_Action_Access
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Document_Action_Access")
public class X_AD_Document_Action_Access extends PO implements I_AD_Document_Action_Access, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Element
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Element")
public class X_AD_Element extends PO implements I_AD_Element, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_EntityType
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_EntityType")
public class X_AD_EntityType extends PO implements I_AD_EntityType, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Error
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Error")
public class X_AD_Error extends PO implements I_AD_Error, I_Persistent
{

View File

@ -20,14 +20,12 @@ package org.compiere.model;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Field
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Field")
public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_FieldGroup
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_FieldGroup")
public class X_AD_FieldGroup extends PO implements I_AD_FieldGroup, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_FieldSuggestion
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_FieldSuggestion")
public class X_AD_FieldSuggestion extends PO implements I_AD_FieldSuggestion, I_Persistent
{

View File

@ -20,14 +20,12 @@ package org.compiere.model;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Find
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Find")
public class X_AD_Find extends PO implements I_AD_Find, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Form
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Form")
public class X_AD_Form extends PO implements I_AD_Form, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Form_Access
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Form_Access")
public class X_AD_Form_Access extends PO implements I_AD_Form_Access, I_Persistent
{

View File

@ -20,13 +20,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_HouseKeeping
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_HouseKeeping")
public class X_AD_HouseKeeping extends PO implements I_AD_HouseKeeping, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Image
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Image")
public class X_AD_Image extends PO implements I_AD_Image, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ImpFormat
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ImpFormat")
public class X_AD_ImpFormat extends PO implements I_AD_ImpFormat, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ImpFormat_Row
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ImpFormat_Row")
public class X_AD_ImpFormat_Row extends PO implements I_AD_ImpFormat_Row, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ImportTemplate
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ImportTemplate")
public class X_AD_ImportTemplate extends PO implements I_AD_ImportTemplate, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_ImportTemplateAccess
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ImportTemplateAccess")
public class X_AD_ImportTemplateAccess extends PO implements I_AD_ImportTemplateAccess, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_IndexColumn
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_IndexColumn")
public class X_AD_IndexColumn extends PO implements I_AD_IndexColumn, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_InfoColumn
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_InfoColumn")
public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_InfoProcess
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_InfoProcess")
public class X_AD_InfoProcess extends PO implements I_AD_InfoProcess, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_InfoRelated
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_InfoRelated")
public class X_AD_InfoRelated extends PO implements I_AD_InfoRelated, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_InfoWindow
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_InfoWindow")
public class X_AD_InfoWindow extends PO implements I_AD_InfoWindow, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_InfoWindow_Access
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_InfoWindow_Access")
public class X_AD_InfoWindow_Access extends PO implements I_AD_InfoWindow_Access, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Issue
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Issue")
public class X_AD_Issue extends PO implements I_AD_Issue, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_LabelPrinter
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_LabelPrinter")
public class X_AD_LabelPrinter extends PO implements I_AD_LabelPrinter, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_LabelPrinterFunction
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_LabelPrinterFunction")
public class X_AD_LabelPrinterFunction extends PO implements I_AD_LabelPrinterFunction, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Language
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Language")
public class X_AD_Language extends PO implements I_AD_Language, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_LdapAccess
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_LdapAccess")
public class X_AD_LdapAccess extends PO implements I_AD_LdapAccess, I_Persistent
{

View File

@ -20,13 +20,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_LdapProcessor
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_LdapProcessor")
public class X_AD_LdapProcessor extends PO implements I_AD_LdapProcessor, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_LdapProcessorLog
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_LdapProcessorLog")
public class X_AD_LdapProcessorLog extends PO implements I_AD_LdapProcessorLog, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Menu
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Menu")
public class X_AD_Menu extends PO implements I_AD_Menu, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Message
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Message")
public class X_AD_Message extends PO implements I_AD_Message, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_MigrationScript
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_MigrationScript")
public class X_AD_MigrationScript extends PO implements I_AD_MigrationScript, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_ModelValidator
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_ModelValidator")
public class X_AD_ModelValidator extends PO implements I_AD_ModelValidator, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Modification
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Modification")
public class X_AD_Modification extends PO implements I_AD_Modification, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Note
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Note")
public class X_AD_Note extends PO implements I_AD_Note, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Org
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Org")
public class X_AD_Org extends PO implements I_AD_Org, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_OrgInfo
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_OrgInfo")
public class X_AD_OrgInfo extends PO implements I_AD_OrgInfo, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_OrgType
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_OrgType")
public class X_AD_OrgType extends PO implements I_AD_OrgType, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PInstance
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PInstance")
public class X_AD_PInstance extends PO implements I_AD_PInstance, I_Persistent
{

View File

@ -21,13 +21,11 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
/** Generated Model for AD_PInstance_Log
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PInstance_Log")
public class X_AD_PInstance_Log extends PO implements I_AD_PInstance_Log, I_Persistent
{

View File

@ -21,14 +21,12 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PInstance_Para
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PInstance_Para")
public class X_AD_PInstance_Para extends PO implements I_AD_PInstance_Para, I_Persistent
{

View File

@ -20,13 +20,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_Exp
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Exp")
public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_Exp_Detail
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Exp_Detail")
public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Detail, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_Imp
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Imp")
public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_Imp_Backup
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Imp_Backup")
public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Backup, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Package_Imp_Detail
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Imp_Detail")
public class X_AD_Package_Imp_Detail extends PO implements I_AD_Package_Imp_Detail, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_Imp_Inst
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Imp_Inst")
public class X_AD_Package_Imp_Inst extends PO implements I_AD_Package_Imp_Inst, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Package_Imp_Proc
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_Imp_Proc")
public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Package_UUID_Map
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Package_UUID_Map")
public class X_AD_Package_UUID_Map extends PO implements I_AD_Package_UUID_Map, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PasswordRule
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PasswordRule")
public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persistent
{

View File

@ -20,12 +20,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_Password_History
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Password_History")
public class X_AD_Password_History extends PO implements I_AD_Password_History, I_Persistent
{

View File

@ -19,12 +19,10 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
/** Generated Model for AD_PostIt
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PostIt")
public class X_AD_PostIt extends PO implements I_AD_PostIt, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Preference
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_Preference")
public class X_AD_Preference extends PO implements I_AD_Preference, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PrintColor
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PrintColor")
public class X_AD_PrintColor extends PO implements I_AD_PrintColor, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PrintFont
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PrintFont")
public class X_AD_PrintFont extends PO implements I_AD_PrintFont, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PrintForm
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PrintForm")
public class X_AD_PrintForm extends PO implements I_AD_PrintForm, I_Persistent
{

View File

@ -19,13 +19,11 @@ package org.compiere.model;
import java.sql.ResultSet;
import java.util.Properties;
import org.atteo.classindex.IndexSubclasses;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PrintFormat
* @author iDempiere (generated)
* @version Development 9.0 - $Id$ */
@IndexSubclasses
@org.adempiere.base.Model(table="AD_PrintFormat")
public class X_AD_PrintFormat extends PO implements I_AD_PrintFormat, I_Persistent
{

Some files were not shown because too many files have changed in this diff Show More