public static DataTypeInPackage_c getOneS_DIPOnR39(
     DataTypePackage_c target, ClassQueryInterface_c test) {
   if (target != null) {
     return getOneS_DIPOnR39(target.getModelRoot(), target, test);
   }
   return null;
 }
  public static DataTypeInPackage_c[] getManyS_DIPsOnR39(
      DataTypePackage_c target, ClassQueryInterface_c test, boolean loadComponent) {
    if (target == null) return new DataTypeInPackage_c[0];

    ModelRoot modelRoot = target.getModelRoot();
    Vector matches = new Vector();
    synchronized (target.backPointer_ContainsDataTypeInPackageContains_R39) {
      for (int i = 0; i < target.backPointer_ContainsDataTypeInPackageContains_R39.size(); ++i) {
        DataTypeInPackage_c source =
            (DataTypeInPackage_c) target.backPointer_ContainsDataTypeInPackageContains_R39.get(i);
        if (source != null && (test == null || test.evaluate(source))) {

          matches.add(source);
        }
      }
    }

    if (matches.size() > 0) {
      DataTypeInPackage_c[] ret_set = new DataTypeInPackage_c[matches.size()];
      matches.copyInto(ret_set);
      return ret_set;
    } else {
      return new DataTypeInPackage_c[0];
    }
  }
 public static DataTypeInPackage_c getOneS_DIPOnR39(
     DataTypePackage_c target, boolean loadComponent) {
   return getOneS_DIPOnR39(target.getModelRoot(), target, null, loadComponent);
 }