public static String getStaticDefaultValue()

in tools/src/main/java/org/apache/tuscany/sdo/generate/util/SDOGenUtil.java [259:325]


    public static String getStaticDefaultValue(GenFeature genFeature) {
      String result = "null";
      boolean defaultFound = false;
  
      String defaultString = genFeature.getEcoreFeature()
          .getDefaultValueLiteral();
      EClassifier eType = genFeature.getEcoreFeature().getEType();
      if (eType instanceof EDataType) {
        GenPackage genPackage = ((GenFeatureImpl) genFeature)
            .findGenPackage(genFeature.getEcoreFeature().getEType().getEPackage());
        GenDataType gdt = null;
        if (genPackage != null) {
          for (Iterator iter = genPackage.getGenDataTypes().iterator(); iter
              .hasNext()
              && gdt == null;) {
            GenDataType genDataType = (GenDataType) iter.next();
            if (eType.getName().equals(genDataType.getEcoreDataType().getName())) {
              gdt = genDataType;
            }
          }
        }
        EClassifier eDataType = gdt.getEcoreDataType();
        if (eDataType.getEPackage() != EcorePackage.eINSTANCE
            && defaultString != null) {
          boolean replaced = false;
          for (Iterator i = EcorePackage.eINSTANCE.getEClassifiers().iterator(); i
              .hasNext();) {
            EClassifier eClassifier = (EClassifier) i.next();
            if (eClassifier instanceof EDataType
                && eClassifier.getInstanceClassName().equals(
                    eDataType.getInstanceClassName())
                && ((EDataType) eClassifier).isSerializable()
                && eClassifier != EcorePackage.eINSTANCE.getEDate()) {
              replaced = true;
              eDataType = eClassifier;
              break;
            }
          }
          if (!replaced) {
            result = "((" + genPackage.getFactoryClassName() + ")"
                + genPackage.getFactoryInterfaceName() + "."
                + genPackage.getFactoryInstanceName() + ")." + "create"
                + gdt.getName() + "FromString("
                + Literals.toLiteral(defaultString) + ")";
            
  
            if (gdt.isPrimitiveType())
            {
              result = "((" + gdt.getObjectInstanceClassName() + ")" + result
                  + ")." + gdt.getPrimitiveValueFunction() + "()";
            } else if (!gdt.isObjectType()) {
              result = "(" + gdt.getImportedInstanceClassName() + ")" + result;
            }
  
            defaultFound = true;
          }
        }
      }
  
      if (!defaultFound) {
        // the input didn't match any special case that we want to handle differently
        // from EMF's default approach,  so go ahead and get EMF to do it
        result = genFeature.getStaticDefaultValue();
      }
  
      return result;
    }