public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { cmd.addExtension("create-timestamp", "true"); } }
public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { cmd.addExtension("create-user", "true"); } }
public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { cmd.addExtension("update-timestamp", "true"); } }
public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { cmd.addExtension("update-user", "true"); } }
@Override public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { cmd.addExtension("read-only", "true"); } }
@Override public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { Map<String, Object> annotationValues = annotation.getNameValueMap(); cmd.addExtension(MetaData.EXTENSION_CLASS_SOFTDELETE, "true"); String column = (String)annotationValues.get("column"); if (column != null && column.length() > 0) { cmd.addExtension(MetaData.EXTENSION_CLASS_SOFTDELETE_COLUMN_NAME, column); } } }
@Override public void processClassAnnotation(AnnotationObject annotation, AbstractClassMetaData cmd, ClassLoaderResolver clr) { Map<String, Object> annotationValues = annotation.getNameValueMap(); String column = (String)annotationValues.get("column"); if (column != null && column.length() > 0) { cmd.addExtension("multitenancy-column-name", column); } Integer colLength = (Integer)annotationValues.get("columnLength"); if (colLength != null && colLength > 0) { cmd.addExtension("multitenancy-column-length", "" + colLength); } Boolean disabled = (Boolean)annotationValues.get("disabled"); if (disabled != null && !disabled) { cmd.addExtension("multitenancy-disable", "true"); } } }
/** * Processes annotations at the class level. */ @Override protected AbstractClassMetaData processClassAnnotations(PackageMetaData pmd, Class cls, AnnotationObject[] annotations, ClassLoaderResolver clr) { AbstractClassMetaData acmd = new ForceClassMetaData(pmd, cls.getSimpleName()); if (annotations != null && annotations.length > 0) { for (int i = 0; i < annotations.length; i++) { AnnotationObject annotation = annotations[i]; if (annotation.getName().equals(CustomObject.class.getName())) { Map nameValues = annotation.getNameValueMap(); for (Method m : CustomObject.class.getDeclaredMethods()) { Object value = nameValues.get(m.getName()); if (value != null && !value.equals(m.getDefaultValue())) { // Only store the non-default values acmd.addExtension(ForceStoreManager.FORCE_KEY, m.getName(), value.toString()); } } } else { throw new NucleusUserException("Unknown Force.com annotation: " + annotation.getName()); } } } return acmd; }
/** * Processes annotations at the class level. */ @Override protected AbstractClassMetaData processClassAnnotations(PackageMetaData pmd, Class cls, AnnotationObject[] annotations, ClassLoaderResolver clr) { AbstractClassMetaData acmd = new ForceClassMetaData(pmd, cls.getSimpleName()); if (annotations != null && annotations.length > 0) { for (int i = 0; i < annotations.length; i++) { AnnotationObject annotation = annotations[i]; if (annotation.getName().equals(CustomObject.class.getName())) { Map nameValues = annotation.getNameValueMap(); for (Method m : CustomObject.class.getDeclaredMethods()) { Object value = nameValues.get(m.getName()); if (value != null && !value.equals(m.getDefaultValue())) { // Only store the non-default values acmd.addExtension(ForceStoreManager.FORCE_KEY, m.getName(), value.toString()); } } } else { throw new NucleusUserException("Unknown Force.com annotation: " + annotation.getName()); } } } return acmd; }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public AbstractClassMetaData getMetaDataForClass(Class cls, PackageMetaData pmd, ClassLoaderResolver clr) { AbstractClassMetaData cmd = super.getMetaDataForClass(cls, pmd, clr); if (cmd == null) { return null; } if (!cls.isAnnotationPresent(CTE.class)) { return cmd; } if (isDataNucleus4) { cmd.setIdentityType(IdentityType.NONDURABLE); cmd.addExtension("view-definition", "--"); for (int i = 0; i < cmd.getNoOfMembers(); i++) { AbstractMemberMetaData mmd = cmd.getMetaDataForMemberAtRelativePosition(i); if (mmd.isPrimaryKey()) { mmd.setPrimaryKey(false); } } } else { cmd.setIdentityType(IdentityType.APPLICATION); cmd.addExtension("view-definition", "--"); } return cmd; }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public AbstractClassMetaData getMetaDataForClass(Class cls, PackageMetaData pmd, ClassLoaderResolver clr) { AbstractClassMetaData cmd = super.getMetaDataForClass(cls, pmd, clr); if (cmd == null) { return null; } if (!cls.isAnnotationPresent(CTE.class)) { return cmd; } if (isDataNucleus4) { cmd.setIdentityType(IdentityType.NONDURABLE); cmd.addExtension("view-definition", "--"); for (int i = 0; i < cmd.getNoOfMembers(); i++) { AbstractMemberMetaData mmd = cmd.getMetaDataForMemberAtRelativePosition(i); if (mmd.isPrimaryKey()) { mmd.setPrimaryKey(false); } } } else { cmd.setIdentityType(IdentityType.APPLICATION); cmd.addExtension("view-definition", "--"); } return cmd; }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public AbstractClassMetaData getMetaDataForClass(Class cls, PackageMetaData pmd, ClassLoaderResolver clr) { AbstractClassMetaData cmd = super.getMetaDataForClass(cls, pmd, clr); if (cmd == null) { return null; } if (!cls.isAnnotationPresent(CTE.class)) { return cmd; } if (isDataNucleus4) { cmd.setIdentityType(IdentityType.NONDURABLE); cmd.addExtension("view-definition", "--"); for (int i = 0; i < cmd.getNoOfMembers(); i++) { AbstractMemberMetaData mmd = cmd.getMetaDataForMemberAtRelativePosition(i); if (mmd.isPrimaryKey()) { mmd.setPrimaryKey(false); } } } else { cmd.setIdentityType(IdentityType.APPLICATION); cmd.addExtension("view-definition", "--"); } return cmd; }
cmd.addExtension(extmd.getVendorName(), extmd.getKey(), extmd.getValue());
/** * This is a lot of hackery. Basically, force the class to go through ForceAnnotationReader * and create a fake class that has Force.com annotations read in as * extension data. We then transfer the extension data from the fake class to the actual one. * * @param cmd - actual class metadata that will get updated with Force.com annotations */ private void updateAnnotations(AbstractClassMetaData cmd) { ClassLoaderResolver clr = storeManager.getOMFContext().getClassLoaderResolver(storeManager.getClass().getClassLoader()); Class<?> clazz = clr.classForName(cmd.getFullClassName()); AbstractClassMetaData cmdNew = annotationReader.getMetaDataForClass(clazz, cmd.getPackageMetaData(), clr); ExtensionMetaData[] extensions = cmdNew.getExtensions(); if (extensions != null && extensions.length > 0) { for (ExtensionMetaData e : extensions) { if (ForceStoreManager.FORCE_KEY.equals(e.getVendorName())) { cmd.addExtension(ForceStoreManager.FORCE_KEY, e.getKey(), e.getValue()); } } } for (AbstractMemberMetaData ammdNew : ((ForceClassMetaData) cmdNew).getMembers()) { AbstractMemberMetaData ammd = cmd.getMetaDataForMember(ammdNew.getName()); for (ExtensionMetaData e : ammdNew.getExtensions()) { ammd.addExtension(e.getVendorName(), e.getKey(), e.getValue()); } } }
/** * This is a lot of hackery. Basically, force the class to go through ForceAnnotationReader * and create a fake class that has Force.com annotations read in as * extension data. We then transfer the extension data from the fake class to the actual one. * * @param cmd - actual class metadata that will get updated with Force.com annotations */ private void updateAnnotations(AbstractClassMetaData cmd) { ClassLoaderResolver clr = storeManager.getOMFContext().getClassLoaderResolver(storeManager.getClass().getClassLoader()); Class<?> clazz = clr.classForName(cmd.getFullClassName()); AbstractClassMetaData cmdNew = annotationReader.getMetaDataForClass(clazz, cmd.getPackageMetaData(), clr); ExtensionMetaData[] extensions = cmdNew.getExtensions(); if (extensions != null && extensions.length > 0) { for (ExtensionMetaData e : extensions) { if (ForceStoreManager.FORCE_KEY.equals(e.getVendorName())) { cmd.addExtension(ForceStoreManager.FORCE_KEY, e.getKey(), e.getValue()); } } } for (AbstractMemberMetaData ammdNew : ((ForceClassMetaData) cmdNew).getMembers()) { AbstractMemberMetaData ammd = cmd.getMetaDataForMember(ammdNew.getName()); for (ExtensionMetaData e : ammdNew.getExtensions()) { ammd.addExtension(e.getVendorName(), e.getKey(), e.getValue()); } } }
cmd.addExtension(ext.key().toString(), ext.value().toString()); cmd.addExtension((String)annotationValues.get("key"), (String)annotationValues.get("value"));