Author: scabanovich
Date: 2011-09-12 20:16:42 -0400 (Mon, 12 Sep 2011)
New Revision: 34660
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/DisposerMethod.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
JBIDE-9699
https://issues.jboss.org/browse/JBIDE-9699
Parameters of disposer methods are loaded to model as injection points.
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2011-09-13
00:13:54 UTC (rev 34659)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2011-09-13
00:16:42 UTC (rev 34660)
@@ -89,6 +89,8 @@
bm = new InitializerMethod();
} else if(m.isObserver()) {
bm = new ObserverMethod();
+ } else if(m.isDisposer()) {
+ bm = new DisposerMethod();
} else {
//add other cases
bm = new BeanMethod();
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/DisposerMethod.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/DisposerMethod.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/DisposerMethod.java 2011-09-13
00:16:42 UTC (rev 34660)
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.internal.core.impl;
+
+import org.jboss.tools.cdi.internal.core.impl.definition.ParameterDefinition;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class DisposerMethod extends BeanMethod {
+
+ @Override
+ protected Parameter newParameter(ParameterDefinition p) {
+ return new InjectionPointParameter();
+ }
+}
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/DisposerMethod.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-09-13
00:13:54 UTC (rev 34659)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-09-13
00:16:42 UTC (rev 34660)
@@ -1493,6 +1493,10 @@
}
private void validateInjectionPoint(IInjectionPoint injection) {
+ if(injection instanceof IInjectionPointParameter &&
injection.isAnnotationPresent(CDIConstants.DISPOSES_ANNOTATION_TYPE_NAME)) {
+ //Disposer is validated separately
+ return;
+ }
/*
* 3.11. The qualifier @Named at injection points
* - injection point other than injected field declares a @Named annotation that does
not specify the value member