You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by sc...@apache.org on 2004/12/09 23:30:26 UTC
svn commit: r111441 - in incubator/apollo/trunk/src/java/org/apache/ws: resource/properties resource/properties/impl resource/properties/porttype/impl util
Author: scamp
Date: Thu Dec 9 14:30:25 2004
New Revision: 111441
URL: http://svn.apache.org/viewcvs?view=rev&rev=111441
Log:
updated for any's
Modified:
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java
incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java?view=diff&rev=111441&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java&r1=111440&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java&r2=111441
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/ResourcePropertyMetaData.java Thu Dec 9 14:30:25 2004
@@ -71,4 +71,9 @@
* container.
*/
ResourceProperty create( ResourcePropertySet propSet );
+
+ /**
+ * Determines if the ResourceProperty is an XSD:Any
+ */
+ boolean isAny();
}
Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java?view=diff&rev=111441&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java&r1=111440&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java&r2=111441
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/AnyResourcePropertyMetaData.java Thu Dec 9 14:30:25 2004
@@ -34,8 +34,30 @@
*/
public AnyResourcePropertyMetaData( QName name )
{
- super( null, false );
+ this( name, false );
+ }
+
+ /**
+ * Creates a new {@link AnyResourcePropertyMetaData} object.
+ *
+ * @param name DOCUMENT_ME
+ * @param isReadOnly DOCUMENT_ME
+ */
+ public AnyResourcePropertyMetaData( QName name,
+ boolean isReadOnly )
+ {
+ super( null, isReadOnly );
m_name = name;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public boolean isAny( )
+ {
+ return true;
}
/**
Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java?view=diff&rev=111441&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java&r1=111440&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java&r2=111441
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java Thu Dec 9 14:30:25 2004
@@ -150,4 +150,9 @@
{
return new XmlBeansResourceProperty( this, (XmlBeansResourcePropertySet) propSet );
}
+
+ public boolean isAny()
+ {
+ return false;
+ }
}
Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java?view=diff&rev=111441&p1=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java&r1=111440&p2=incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java&r2=111441
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/porttype/impl/SetResourcePropertiesProvider.java Thu Dec 9 14:30:25 2004
@@ -163,15 +163,25 @@
{
return; // nothing to do
}
+ throwFaultIfElementNamesHeterogenous( propElemsToBeInserted );
QName propName = XmlBeanUtils.getName( propElemsToBeInserted[0] );
ResourceProperty prop = getProperty( propName );
- //refreshProperty( prop );
+ if(prop == null)
+ {
+ prop = createAnyProperty(propName);
+ getProperties().add(prop);
+ }
+
+ if(!prop.getMetaData().isAny())
+ {
+ //todo probably need to check this for xsd:any to check for possible violations
+ //refreshProperty( prop );
+ throwFaultIfInsertionViolatesSchema( prop, propElemsToBeInserted );
+ }
throwFaultIfPropertyIsReadOnly( prop );
- throwFaultIfElementNamesHeterogenous( propElemsToBeInserted );
- throwFaultIfInsertionViolatesSchema( prop, propElemsToBeInserted );
try
{
@@ -195,6 +205,14 @@
}
}
+ private ResourceProperty createAnyProperty(QName propName)
+ {
+ ResourceProperty prop;
+ ResourcePropertyMetaData propMetaData = new AnyResourcePropertyMetaData( propName );
+ prop = propMetaData.create( getProperties() );
+ return prop;
+ }
+
/**
* DOCUMENT_ME
*
@@ -258,9 +276,6 @@
{
throw new InvalidResourcePropertyQNameFaultException( propName );
}
-
- ResourcePropertyMetaData propMetaData = new AnyResourcePropertyMetaData( propName );
- prop = propMetaData.create( getProperties() );
}
return prop;
@@ -292,7 +307,7 @@
}
private void throwFaultIfInsertionViolatesSchema( ResourceProperty prop, XmlObject[] propElemsToBeInserted )
- {
+ { //todo probably need to check this for xsd:any to check for possible violations
if ( prop.getMetaData().getMaxOccurs() != -1 &&( prop.size() + propElemsToBeInserted.length ) > prop.getMetaData().getMaxOccurs() )
{
throw new InvalidSetResourcePropertiesRequestContentFaultException( MSG.getMessage( Keys.ERROR_PROPERTY_INSERT_VIOLATES_SCHEMA,
Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
Url: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java?view=diff&rev=111441&p1=incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java&r1=111440&p2=incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java&r2=111441
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java Thu Dec 9 14:30:25 2004
@@ -66,7 +66,7 @@
XmlCursor xCursor = xBean.newCursor( );
for ( boolean hasNext = xCursor.toFirstChild( ); hasNext; hasNext = xCursor.toNextSibling( ) )
{
- if ( ( name == null ) || xCursor.getName( ).equals( name ) )
+ if ( ( name == null ) || getName(xCursor).equals( name ) )
{
foundElems.add( xCursor.getObject( ) );
}
@@ -129,14 +129,31 @@
else
{
XmlCursor xCursor = xBean.newCursor( );
- name = xCursor.getName( );
- xCursor.dispose( );
+ name = getName(xCursor);
+ xCursor.dispose( );
}
LOG.debug(MSG.getMessage( Keys.QNAME_OF_XMLOBJ,name.toString()));
return name;
}
- /**
+ /**
+ * Note. this method does not dispose of the cursor
+ *
+ * @param xCursor
+ * @return
+ */
+ public static QName getName(XmlCursor xCursor)
+ {
+ QName name;
+ if(xCursor.currentTokenType().equals(XmlCursor.TokenType.STARTDOC))
+ {
+ xCursor.toFirstChild();
+ }
+ name = xCursor.getName( );
+ return name;
+ }
+
+ /**
* DOCUMENT_ME
*
* @param docXBean DOCUMENT_ME
@@ -246,7 +263,7 @@
xCursor.toEndDoc( );
childXBean = getRootElement( childXBean );
xCursor.toPrevToken( );
- xCursor.insertElement( childXBean.newCursor( ).getName( ) );
+ xCursor.insertElement( getName(childXBean.newCursor( )));
xCursor.toPrevSibling( );
xCursor.getObject( ).set( childXBean );
xCursor.dispose( );
@@ -280,7 +297,7 @@
XmlCursor xCursor = xBean.newCursor( );
for ( boolean hasNext = xCursor.toFirstChild( ); hasNext; hasNext = xCursor.toNextSibling( ) )
{
- if ( xCursor.getName( ).equals( name ) )
+ if ( getName( xCursor ).equals( name ) )
{
succeeded = succeeded && xCursor.removeXml( );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org