private TransactionMetadata lookupTransactionMetadata(Method element) { if (transactionMetadata == null) { transactionMetadata = new HashMap<AnnotatedElement, TransactionMetadata>(); } TransactionMetadata metadata = transactionMetadata.get(element); if (metadata == null) { synchronized (this) { if (element.isAnnotationPresent(Transactional.class)) { metadata = new TransactionMetadata(element.getAnnotation(Transactional.class)); } else if (element.isAnnotationPresent(EjbApi.TRANSACTION_ATTRIBUTE)) { metadata = new TransactionMetadata(element.getAnnotation(EjbApi.TRANSACTION_ATTRIBUTE)); } else { metadata = new TransactionMetadata(null); } transactionMetadata.put(element, metadata); } } return metadata; }
private TransactionMetadata lookupTransactionMetadata(Class<?> element) { if (transactionMetadata == null) { transactionMetadata = new HashMap<AnnotatedElement, TransactionMetadata>(); } TransactionMetadata metadata = transactionMetadata.get(element); if (metadata == null) { synchronized (this) { // we need access to cached stereotype information, so we load it // from the transaction extension metadata = new TransactionMetadata(transactionExtension.getClassLevelTransactionAnnotation(element)); transactionMetadata.put((AnnotatedElement) element, metadata); } } return metadata; }
private boolean isNewTransactionRequired(Method method, Class beanClass, boolean transactionActive) { TransactionMetadata metadata = lookupTransactionMetadata(method); if (metadata.isAnnotationPresent()) { return metadata.isNewTransactionRequired(transactionActive); } else { metadata = lookupTransactionMetadata(beanClass); return metadata.isNewTransactionRequired(transactionActive); } }
private boolean isNewTransactionRequired(Method method, Class<?> beanClass, boolean transactionActive) { TransactionMetadata metadata = lookupTransactionMetadata(method); if (metadata.isAnnotationPresent()) { return metadata.isNewTransactionRequired(transactionActive); } else { metadata = lookupTransactionMetadata(beanClass); return metadata.isNewTransactionRequired(transactionActive); } }
private synchronized TransactionMetadata loadMetadata(AnnotatedElement element) { if (!transactionMetadata.containsKey(element)) { TransactionMetadata metadata = new TransactionMetadata(element); transactionMetadata.put(element, metadata); return metadata; } return transactionMetadata.get(element); }