/** Load the given class name with the given class loader. */ public static Class loadClass( String className, ClassLoader loader, boolean throwExceptionIfNotFound, MetadataProject project) { Class candidateClass = null; try { candidateClass = loader.loadClass(className); } catch (ClassNotFoundException exc) { if (throwExceptionIfNotFound) { throw PersistenceUnitLoadingException.exceptionLoadingClassWhileLookingForAnnotations( className, exc); } else { AbstractSessionLog.getLog() .log( AbstractSessionLog.WARNING, "persistence_unit_processor_error_loading_class", exc.getClass().getName(), exc.getLocalizedMessage(), className); } } catch (NullPointerException npe) { // Bug 227630: If any weavable class is not found in the temporary // classLoader - disable weaving AbstractSessionLog.getLog() .log( AbstractSessionLog.WARNING, AbstractSessionLog.WEAVER, "persistence_unit_processor_error_loading_class_weaving_disabled", loader, project.getPersistenceUnitInfo().getPersistenceUnitName(), className); // Disable weaving (for 1->1 and many->1)only if the classLoader // returns a NPE on loadClass() project.disableWeaving(); } catch (Exception exception) { AbstractSessionLog.getLog() .log( AbstractSessionLog.WARNING, AbstractSessionLog.WEAVER, "persistence_unit_processor_error_loading_class", exception.getClass().getName(), exception.getLocalizedMessage(), className); } catch (Error error) { AbstractSessionLog.getLog() .log( AbstractSessionLog.WARNING, AbstractSessionLog.WEAVER, "persistence_unit_processor_error_loading_class", error.getClass().getName(), error.getLocalizedMessage(), className); throw error; } return candidateClass; }
/** * INTERNAL: Process a the XML defined type converters and check for a TypeConverter annotation. */ protected void processTypeConverters() { // Check for XML defined type converters. for (TypeConverterMetadata typeConverter : m_typeConverters) { m_project.addConverter(typeConverter); } // Check for an TypeConverter annotation. MetadataAnnotation typeConverter = getAnnotation(TypeConverter.class); if (typeConverter != null) { m_project.addConverter(new TypeConverterMetadata(typeConverter, getAccessibleObject())); } }
/** * INTERNAL: Process the XML defined struct converters and check for a StructConverter annotation. */ protected void processStructConverter() { // Check for XML defined struct converters. for (StructConverterMetadata structConverter : m_structConverters) { m_project.addConverter(structConverter); } // Check for a StructConverter annotation. MetadataAnnotation converter = getAnnotation(StructConverter.class); if (converter != null) { m_project.addConverter(new StructConverterMetadata(converter, getAccessibleObject())); } }
/** INTERNAL: Process the XML defined converters and check for a Converter annotation. */ protected void processCustomConverters() { // Check for XML defined converters. for (ConverterMetadata converter : m_converters) { m_project.addConverter(converter); } // Check for a Converter annotation. MetadataAnnotation converter = getAnnotation(Converter.class); if (converter != null) { m_project.addConverter(new ConverterMetadata(converter, getAccessibleObject())); } }
/** * INTERNAL: Process the XML defined object type converters and check for an ObjectTypeConverter * annotation. */ protected void processObjectTypeConverters() { // Check for XML defined object type converters. for (ObjectTypeConverterMetadata objectTypeConverter : m_objectTypeConverters) { m_project.addConverter(objectTypeConverter); } // Check for an ObjectTypeConverter annotation. MetadataAnnotation objectTypeConverter = getAnnotation(ObjectTypeConverter.class); if (objectTypeConverter != null) { m_project.addConverter( new ObjectTypeConverterMetadata(objectTypeConverter, getAccessibleObject())); } }
/** INTERNAL: */ protected boolean useDelimitedIdentifier() { return m_project.useDelimitedIdentifier(); }
/** INTERNAL: Return the upper cased attribute name for this accessor. Used when defaulting. */ protected String getDefaultAttributeName() { return (m_project.useDelimitedIdentifier()) ? getAttributeName() : getAttributeName().toUpperCase(); }
/** INTERNAL: Return the metadata logger. */ public MetadataLogger getLogger() { return m_project.getLogger(); }