Package org.cruxframework.crux.core.rebind

Examples of org.cruxframework.crux.core.rebind.CruxGeneratorException


    this.objectStoreName = objectStoreName;
    this.keyPath = keyPath;
    this.targetObjectType = targetObjectType;
    if (JClassUtils.isSimpleType(targetObjectType))
    {
      throw new CruxGeneratorException("Simple types are not allowed as row in Crux Database. Create an wrapper Object to your value. ObjectStoreName["+objectStoreName+"]");
    }
    this.stringType = context.getTypeOracle().findType(String.class.getCanonicalName());
    this.integerType = context.getTypeOracle().findType(Integer.class.getCanonicalName());
    this.doubleType = context.getTypeOracle().findType(Double.class.getCanonicalName());
    this.dateType = context.getTypeOracle().findType(Date.class.getCanonicalName());
View Full Code Here


  protected void validatePrimaryKeyPath(JClassType targetObjectType, String objectStoreName, String[] keyPath)
    {
      if (keyPath == null)
    {
      throw new CruxGeneratorException("Invalid KeyPath. ObjectStoreName["+objectStoreName+"]");
    }
    for (String k : keyPath)
        {
          if (!k.matches("\\w*"))
          {
        throw new CruxGeneratorException("Invalid KeyPath. ObjectStoreName["+objectStoreName+"]");
          }
          JType jType = JClassUtils.getTypeForProperty(k, targetObjectType);
         
          if (jType == null || jType.isPrimitive() != null)
          {
            throw new CruxGeneratorException("Invalid keyPath for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]. Crux does not accept primitive types as object store keys");
          }
        }
    }
View Full Code Here

      for (String key : keyPath)
        {
          String getterMethod = JClassUtils.getGetterMethod(key, targetObjectType);
      if (StringUtils.isEmpty(getterMethod))
      {
        throw new CruxGeneratorException("Invalid keyPath for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
      }
      JType jType = JClassUtils.getReturnTypeFromMethodClass(targetObjectType, getterMethod, new JType[]{});
          if (jType.equals(stringType))
          {
              srcWriter.println("result["+i+"] = key.getString("+i+");");
          }
          else if (jType.equals(integerType) || (jType.equals(JPrimitiveType.INT)))
          {
              srcWriter.println("result["+i+"] = (int)key.getNumber("+i+");");
          }
          else if (jType.equals(doubleType) || (jType.equals(JPrimitiveType.DOUBLE)))
          {
              srcWriter.println("result["+i+"] = key.getNumber("+i+");");
          }
          else if (jType.equals(dateType))
          {
              srcWriter.println("result["+i+"] = new "+Date.class.getCanonicalName()+"((long)key.getNumber("+i+"));");
          }
          else
          {
            throw new CruxGeneratorException("Invalid key type for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
          }
          i++;
        }
      srcWriter.println("return result;");
      srcWriter.println("}");
View Full Code Here

        srcWriter.println("else{");
     
      JType jType = JClassUtils.getTypeForProperty(key, targetObjectType);
      if (jType == null)
      {
        throw new CruxGeneratorException("Invalid keyPath for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
      }
      if (jType.equals(stringType))
      {
        srcWriter.println("result.push((String)"+keyVar+");");
      }
      else if (jType.equals(integerType) || (jType.equals(JPrimitiveType.INT)))
      {
        if (keyPath.length > 1)
        {
          srcWriter.println("result.push((Integer)"+keyVar+");");
        }
        else
        {
          srcWriter.println("result.push((int)"+keyVar+");");
        }
      }
      else if (jType.equals(doubleType) || (jType.equals(JPrimitiveType.DOUBLE)))
      {
        if (keyPath.length > 1)
        {
          srcWriter.println("result.push((Double)"+keyVar+");");
        }
        else
        {
          srcWriter.println("result.push((double)"+keyVar+");");
        }
      }
      else if (jType.equals(dateType))
      {
        srcWriter.println("result.push((double)(("+Date.class.getCanonicalName()+")"+keyVar+").getTime());");
      }
      else
      {
        throw new CruxGeneratorException("Invalid key type for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
      }
        srcWriter.println("}");
      i++;
    }
    srcWriter.println("}");
View Full Code Here

    else if (keyPath.length == 1)
    {
      JType jType = JClassUtils.getTypeForProperty(keyPath[0], targetObjectType);
      if (jType == null)
      {
        throw new CruxGeneratorException("Invalid keyPath for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
      }
          if (jType.equals(stringType))
          {
            return "String";
          }
          else if (jType.equals(integerType) || (jType.equals(JPrimitiveType.INT)))
          {
            return "Integer";
          }
          else if (jType.equals(doubleType) || (jType.equals(JPrimitiveType.DOUBLE)))
          {
            return "Double";
          }
          else if (jType.equals(dateType))
          {
            return Date.class.getCanonicalName();
           
          }
          else
          {
            throw new CruxGeneratorException("Invalid key type for objectStore ["+targetObjectType.getParameterizedQualifiedSourceName()+"]");
          }
    }
    else
    {
      throw new CruxGeneratorException("can not create an objectStore without a key definition. ObjectStore["+objectStoreName+"].");
    }
  }
View Full Code Here

        {
      JClassType objectStoreTarget = getObjectStoreTarget(objectStoreMetadata);
      String objectStoreName = getObjectStoreName(objectStoreMetadata, objectStoreTarget);
      if (addedObjectStores.contains(objectStoreName))
      {
        throw new CruxGeneratorException("Duplicated objectstore declared on Datasource ["+databaseMetadata.name()+"]");
      }
      addedObjectStores.add(objectStoreName);
     
      if (objectStoreMetadata.keyPath().length == 1)
      {
        generateObjectStoreCreation(srcWriter, objectStoreMetadata.keyPath()[0], objectStoreMetadata.autoIncrement(), objectStoreName, objectStoreVar);
      }
      else if (objectStoreMetadata.keyPath().length > 1)
      {
        generateObjectStoreCreation(srcWriter, objectStoreMetadata.keyPath(), objectStoreMetadata.autoIncrement(), objectStoreName, objectStoreVar);
      }
      else if (objectStoreTarget != null && !objectStoreTarget.isAssignableTo(emptyType))
      {
        String[] keyPath = getKeyPath(objectStoreTarget);
        if (keyPath == null || keyPath.length == 0)
        {
          throw new CruxGeneratorException("can not create an objectStore without a key definition. ObjectStore["+objectStoreName+"].");
        }
        else if (keyPath.length == 1)
        {
          generateObjectStoreCreation(srcWriter, keyPath[0], isAutoIncrement(objectStoreTarget), objectStoreName, objectStoreVar);
        }
        else
        {
          generateObjectStoreCreation(srcWriter, keyPath, isAutoIncrement(objectStoreTarget), objectStoreName, objectStoreVar);
        }
      }
      else
      {
        throw new CruxGeneratorException("can not create an objectStore without a key definition. ObjectStore["+objectStoreName+"].");
      }
      generateIndexesCreation(srcWriter, objectStoreMetadata.indexes(), objectStoreTarget, objectStoreVar, objectStoreName, indexNamesVar);
        }
    generateFileStoreCreation(srcWriter);   
    }
View Full Code Here

  {
    for (String value : possibleValues)
    {
      if (!VALID_VALUES.contains(value))
      {
        throw new CruxGeneratorException("Property device.features can not be assigned to value ["+value+"].");
      }
    }
    StringSourceWriter body = new StringSourceWriter();
    body.println("{");
    body.indent();
View Full Code Here

          this.device = device;
          this.templateParser = CrossDevicesTemplateParser.getInstance();
          return;
        }
        }
      throw new CruxGeneratorException("DeviceAdaptive widget does not declare any valid template for device ["+getDeviceFeatures()+"].");
    }
View Full Code Here

  {
    controllerName = templateParser.getTemplateController(view, baseIntf.getQualifiedSourceName(), device);
    String controllerClassName = ClientControllers.getController(controllerName, device);
    if (controllerClassName == null)
    {
      throw new CruxGeneratorException("Error generating invoker. Controller ["+controllerName+"] not found.");
    }
   
    controllerClass = context.getTypeOracle().findType(controllerClassName);
    if (controllerClass == null)
    {
        String message = "Controller class ["+controllerName+"] , declared on view ["+view.getId()+"], could not be loaded. "
             + "\n Possible causes:"
             + "\n\t 1. Check if any type or subtype used by controller refers to another module and if this module is inherited in the .gwt.xml file."
             + "\n\t 2. Check if your controller or its members belongs to a client package."
             + "\n\t 3. Check the versions of all your modules.";
     
      throw new CruxGeneratorException(message);
    }
    Controller controllerAnnot = controllerClass.getAnnotation(Controller.class);
    if (controllerAnnot == null)
    {
      throw new CruxGeneratorException("DeviceAdaptive implementation class ["+controllerClass.getQualifiedSourceName()+"] is not a valid Controller. It must be annotated with @Controller annotation.");
    }
   
    if (!controllerClass.isAssignableTo(deviceAdaptiveControllerClass))
    {
      throw new CruxGeneratorException("DeviceAdaptive implementation class ["+controllerClass.getQualifiedSourceName()+"] must externds the base class DeviceAdaptiveController.");
    }
  }
View Full Code Here

          FormatterName annot = formatterClass.getAnnotation(FormatterName.class);
          if (annot != null)
          {
            if (formatters.containsKey(annot.value()))
            {
              throw new CruxGeneratorException("Duplicated formatter: ["+annot.value()+"].");
            }
            formatters.put(annot.value(), formatterClass.getCanonicalName());
          }
          else
          {
            String simpleName = formatterClass.getSimpleName();
            if (simpleName.length() >1)
            {
              simpleName = Character.toLowerCase(simpleName.charAt(0)) + simpleName.substring(1);
            }
            else
            {
              simpleName = simpleName.toLowerCase();
            }
            if (formatters.containsKey(simpleName))
            {
              throw new CruxGeneratorException("Duplicated formatter: ["+simpleName+"].");
            }
            formatters.put(simpleName, formatterClass.getCanonicalName());
          }
        }
        catch (Throwable e)
View Full Code Here

TOP

Related Classes of org.cruxframework.crux.core.rebind.CruxGeneratorException

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.