// EntityManagerImpl is from package org.eclipse.persistence.internal.jpa Session session = ((EntityManagerImpl) entityManager).getActiveSession(); Project project = session.getProject();
public void customize(Session session) throws Exception { DynamicClassLoader dcl = DynamicClassLoader.lookup(session); for (Iterator<?> i = session.getProject().getDescriptors().values().iterator(); i.hasNext();) { new DynamicTypeBuilder(dcl, (ClassDescriptor) i.next(), null); } } }
/** * Returns descriptors from all sessions. * * @return descriptors from all sessions */ public List<Descriptor> getDescriptors() { List<Descriptor> descriptors = new ArrayList<Descriptor>(); List<Session> sessions = getSessions(); for (Session session : sessions) { List<Descriptor> orderedDescriptors = (List<Descriptor>) (List) session.getProject().getOrderedDescriptors(); for (Descriptor xDesc : orderedDescriptors) { descriptors.add(xDesc); } } return descriptors; }
public void customize(Session session) throws Exception { DynamicClassLoader dcl = DynamicClassLoader.lookup(session); for (Iterator<?> i = session.getProject().getDescriptors().values().iterator(); i.hasNext();) { new DynamicTypeBuilder(dcl, (ClassDescriptor) i.next(), null); } } }
public void customize(Session session) throws Exception { DynamicClassLoader dcl = DynamicClassLoader.lookup(session); for (Iterator<?> i = session.getProject().getDescriptors().values().iterator(); i.hasNext();) { new DynamicTypeBuilder(dcl, (ClassDescriptor) i.next(), null); } } }
/** * Returns descriptors from all sessions. * * @return descriptors from all sessions */ public List<Descriptor> getDescriptors() { List<Descriptor> descriptors = new ArrayList<Descriptor>(); List<Session> sessions = getSessions(); for (Session session : sessions) { List<Descriptor> orderedDescriptors = (List<Descriptor>) (List) session.getProject().getOrderedDescriptors(); for (Descriptor xDesc : orderedDescriptors) { descriptors.add(xDesc); } } return descriptors; }
public static PersistenceWeaver createTransformerAndModifyProject( Session session, Collection<MetadataClass> entityClasses, ClassLoader classLoader, boolean weaveLazy, boolean weaveChangeTracking, boolean weaveFetchGroups, boolean weaveInternal, boolean weaveRest) { if (session == null) { throw new IllegalArgumentException("Weaver session cannot be null"); } if (session.getProject() == null) { ((AbstractSession)session).log(SessionLog.SEVERE, SessionLog.WEAVER, WEAVER_NULL_PROJECT, null); throw new IllegalArgumentException("Weaver session's project cannot be null"); } TransformerFactory tf = new TransformerFactory(session, entityClasses, classLoader, weaveLazy, weaveChangeTracking, weaveFetchGroups, weaveInternal, weaveRest); tf.buildClassDetailsAndModifyProject(); return tf.buildPersistenceWeaver(); }
/** * <p>INTERNAL: */ @SuppressWarnings("rawtypes") public void buildDescriptorIndex() { for (Iterator i = xrService.oxSession.getProject().getOrderedDescriptors().iterator(); i.hasNext();) { XMLDescriptor xd = (XMLDescriptor)i.next(); XMLSchemaReference schemaReference = xd.getSchemaReference(); if (schemaReference != null && schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) { String context = schemaReference.getSchemaContext(); if (context != null && context.lastIndexOf(SLASH_CHAR) == 0) { String elementNameNS = context.substring(1); QName elementName = resolveName(elementNameNS, xd.getNamespaceResolver()); if (elementName == null) { continue; } xrService.descriptorsByQName.put(elementName, xd); } } } }
/** * <p>INTERNAL: */ @SuppressWarnings("rawtypes") public void buildDescriptorIndex() { for (Iterator i = xrService.oxSession.getProject().getOrderedDescriptors().iterator(); i.hasNext();) { XMLDescriptor xd = (XMLDescriptor)i.next(); XMLSchemaReference schemaReference = xd.getSchemaReference(); if (schemaReference != null && schemaReference.getType() == XMLSchemaReference.COMPLEX_TYPE) { String context = schemaReference.getSchemaContext(); if (context != null && context.lastIndexOf(SLASH_CHAR) == 0) { String elementNameNS = context.substring(1); QName elementName = resolveName(elementNameNS, xd.getNamespaceResolver()); if (elementName == null) { continue; } xrService.descriptorsByQName.put(elementName, xd); } } } }
protected String getSequenceTableName(org.eclipse.persistence.sessions.Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { org.eclipse.persistence.sequencing.Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof org.eclipse.persistence.sequencing.TableSequence) { sequenceTableName = ((org.eclipse.persistence.sequencing.TableSequence)sequence).getTableName(); } } return sequenceTableName; } }
@Override public void validate(XRServiceAdapter xrService) { super.validate(xrService); if (descriptorName == null) { throw DBWSException.couldNotLocateDescriptorForOperation(descriptorName, getName()); } if (!xrService.getORSession().getProject().getAliasDescriptors().containsKey(descriptorName)) { throw DBWSException.couldNotLocateDescriptorForOperation(descriptorName, getName()); } classDescriptor = xrService.getORSession().getProject().getDescriptorForAlias(descriptorName); }
@Override public void validate(XRServiceAdapter xrService) { super.validate(xrService); if (descriptorName == null) { throw DBWSException.couldNotLocateDescriptorForOperation(descriptorName, getName()); } if (!xrService.getORSession().getProject().getAliasDescriptors().containsKey(descriptorName)) { throw DBWSException.couldNotLocateDescriptorForOperation(descriptorName, getName()); } classDescriptor = xrService.getORSession().getProject().getDescriptorForAlias(descriptorName); }
/** * This returns the Sequence Table's qualified name, without delimiting. * @param session * @return the qualified table name */ protected String getSequenceTableName(Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof TableSequence) { sequenceTableName = ((TableSequence)sequence).getQualifiedTableName(); } } return sequenceTableName; }
/** * This returns the Sequence Table's qualified name, without delimiting. * @param session * @return the qualified table name */ protected String getSequenceTableName(Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof TableSequence) { sequenceTableName = ((TableSequence)sequence).getQualifiedTableName(); } } return sequenceTableName; }
/** * {@inheritDoc} */ @Override public void initialize(XRServiceAdapter xrService, QueryOperation queryOperation) { if (descriptor != null) { ClassDescriptor cd = xrService.getORSession().getProject().getDescriptorForAlias(descriptor); databaseQuery = cd.getQueryManager().getQuery(name); } else { databaseQuery = xrService.getORSession().getQuery(name); if (databaseQuery == null) { // must be a JPAQuery for (DatabaseQuery q : xrService.getORSession().getJPAQueries()) { if (q.getName().equals(name)) { databaseQuery = q; break; } } } } } }
/** * {@inheritDoc} */ @Override public void initialize(XRServiceAdapter xrService, QueryOperation queryOperation) { if (descriptor != null) { ClassDescriptor cd = xrService.getORSession().getProject().getDescriptorForAlias(descriptor); databaseQuery = cd.getQueryManager().getQuery(name); } else { databaseQuery = xrService.getORSession().getQuery(name); if (databaseQuery == null) { // must be a JPAQuery for (DatabaseQuery q : xrService.getORSession().getJPAQueries()) { if (q.getName().equals(name)) { databaseQuery = q; break; } } } } } }
protected void addValueObjectDescriptor(XRServiceAdapter xrService) { Session oxSession = xrService.getOXSession(); XMLDescriptor descriptor = (XMLDescriptor)oxSession.getProject().getClassDescriptor( ValueObject.class); if (descriptor == null) { descriptor = new XMLDescriptor(); descriptor.setAlias(VALUEOBJECT_STR); descriptor.setJavaClass(ValueObject.class); XMLDirectMapping mapping = new XMLDirectMapping(); mapping.setAttributeName(VALUE_STR); mapping.setXPath(VALUE_STR); descriptor.addMapping(mapping); NamespaceResolver nr = new NamespaceResolver(); descriptor.setNamespaceResolver(nr); oxSession.getProject().addDescriptor(descriptor); ((DatabaseSessionImpl)oxSession) .initializeDescriptorIfSessionAlive(descriptor); xrService.getXMLContext().storeXMLDescriptorByQName(descriptor); } }
protected void addValueObjectDescriptor(XRServiceAdapter xrService) { Session oxSession = xrService.getOXSession(); XMLDescriptor descriptor = (XMLDescriptor)oxSession.getProject().getClassDescriptor( ValueObject.class); if (descriptor == null) { descriptor = new XMLDescriptor(); descriptor.setAlias(VALUEOBJECT_STR); descriptor.setJavaClass(ValueObject.class); XMLDirectMapping mapping = new XMLDirectMapping(); mapping.setAttributeName(VALUE_STR); mapping.setXPath(VALUE_STR); descriptor.addMapping(mapping); NamespaceResolver nr = new NamespaceResolver(); descriptor.setNamespaceResolver(nr); oxSession.getProject().addDescriptor(descriptor); ((DatabaseSessionImpl)oxSession) .initializeDescriptorIfSessionAlive(descriptor); xrService.getXMLContext().storeXMLDescriptorByQName(descriptor); } }
/** * Check to ensure the class meets all the conditions necessary to enable change tracking * This could occur either if the class already has change tracking implemented or if the * class is capable of having change tracking woven based on the descriptor. */ protected boolean canChangeTrackingBeEnabled(ClassDescriptor descriptor, MetadataClass clz, boolean globalWeaveChangeTracking) { if (!globalWeaveChangeTracking) { return false; } // If the descriptor was configured to not use change tracking then disable it, also enable if configure explictly. if (descriptor.getObjectChangePolicyInternal() != null) { if (descriptor.getObjectChangePolicyInternal().isDeferredChangeDetectionPolicy()) { return false; } else if (descriptor.getObjectChangePolicyInternal().isObjectChangeTrackingPolicy()) { // Include object and attribute. return true; } } boolean canWeaveChangeTracking = descriptor.supportsChangeTracking(session.getProject()); if (!canWeaveChangeTracking) { log(SessionLog.CONFIG, CANNOT_WEAVE_CHANGETRACKING, new Object[]{descriptor.getJavaClassName()}); } return canWeaveChangeTracking; }
protected void addSimpleXMLFormatModelDescriptor(XRServiceAdapter xrService) { if (isSimpleXMLFormat()) { Session oxSession = xrService.getOXSession(); XMLDescriptor simpleXMLFormatDescriptor = (XMLDescriptor)oxSession. getProject().getClassDescriptor(SimpleXMLFormatModel.class); if (simpleXMLFormatDescriptor == null) { simpleXMLFormatDescriptor = new XMLDescriptor(); simpleXMLFormatDescriptor.setJavaClass(SimpleXMLFormatModel.class); simpleXMLFormatDescriptor.setAlias(DEFAULT_SIMPLE_XML_FORMAT_TAG); simpleXMLFormatDescriptor.setDefaultRootElement(DEFAULT_SIMPLE_XML_FORMAT_TAG); XMLFragmentCollectionMapping xmlTag = new XMLFragmentCollectionMapping(); xmlTag.setAttributeName(SIMPLEXML_STR); xmlTag.setXPath(DEFAULT_SIMPLE_XML_TAG); simpleXMLFormatDescriptor.addMapping(xmlTag); NamespaceResolver nr = new NamespaceResolver(); simpleXMLFormatDescriptor.setNamespaceResolver(nr); XMLSchemaURLReference schemaReference = new XMLSchemaURLReference(EMPTY_STR); schemaReference.setSchemaContext(SIMPLEXML_FORMAT_STR); schemaReference.setType(XMLSchemaReference.COMPLEX_TYPE); simpleXMLFormatDescriptor.setSchemaReference(schemaReference); oxSession.getProject().addDescriptor(simpleXMLFormatDescriptor); ((DatabaseSessionImpl)oxSession) .initializeDescriptorIfSessionAlive(simpleXMLFormatDescriptor); xrService.getXMLContext().storeXMLDescriptorByQName(simpleXMLFormatDescriptor); } } }