|
From: Pelle B. <pe...@us...> - 2004-04-18 01:06:15
|
Update of /cvsroot/neuclear/neuclear-pay/src/java/org/neuclear/asset/contracts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22163/src/java/org/neuclear/asset/contracts Modified Files: Asset.java Log Message: Asset now parses the xhtml file for its details. Index: Asset.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-pay/src/java/org/neuclear/asset/contracts/Asset.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Asset.java 5 Apr 2004 16:31:40 -0000 1.17 --- Asset.java 18 Apr 2004 01:06:06 -0000 1.18 *************** *** 1,9 **** package org.neuclear.asset.contracts; import org.dom4j.Element; import org.neuclear.commons.Utility; import org.neuclear.id.*; import org.neuclear.id.targets.Targets; ! import org.neuclear.xml.xmlsec.XMLSecTools; import org.neuclear.xml.xmlsec.XMLSecurityException; --- 1,10 ---- package org.neuclear.asset.contracts; + import org.dom4j.Attribute; import org.dom4j.Element; import org.neuclear.commons.Utility; import org.neuclear.id.*; import org.neuclear.id.targets.Targets; ! import org.neuclear.xml.XMLTools; import org.neuclear.xml.xmlsec.XMLSecurityException; *************** *** 30,33 **** --- 31,37 ---- $Id$ $Log$ + Revision 1.18 2004/04/18 01:06:06 pelle + Asset now parses the xhtml file for its details. + Revision 1.17 2004/04/05 16:31:40 pelle Created new ServiceBuilder class for creating services. A service is an identity that has a seperate service URL and Service Public Key. *************** *** 201,218 **** */ public final SignedNamedObject read(final SignedNamedCore core, final Element elem) throws InvalidNamedObjectException { ! if (!elem.getNamespace().equals(AssetGlobals.NS_ASSET)) ! throw new InvalidNamedObjectException(core.getName(), "Not in XML NameSpace: " + AssetGlobals.NS_ASSET.getURI()); ! final Element issuerElement = InvalidNamedObjectException.assertContainsElementQName(core, elem, AssetGlobals.createQName("Issuer")); ! final Element serviceElement = InvalidNamedObjectException.assertContainsElementQName(core, elem, SignedNamedObject.createNEUIDQName("Service")); ! final Element serviceKeyElement = InvalidNamedObjectException.assertContainsElementQName(core, serviceElement, XMLSecTools.createQName("KeyInfo")); ! final Element serviceUrlElement = InvalidNamedObjectException.assertContainsElementQName(core, serviceElement, SignedNamedObject.createNEUIDQName("Url")); try { final PublicKey sPub = extractPublicKey(serviceKeyElement); ! final String serviceurl = serviceUrlElement.getTextTrim(); ! final PublicKey iPub = extractPublicKey(InvalidNamedObjectException.assertContainsElementQName(issuerElement, XMLSecTools.createQName("KeyInfo"))); final int decimal = extractDecimalPoints(elem); final double minimum = extractMinimumTransactionAmount(elem); final Targets targets = Targets.parseList(elem); ! return new Asset(core, serviceurl, sPub, iPub, targets, decimal, minimum); } catch (XMLSecurityException e) { throw new InvalidNamedObjectException("invalid asset xml"); --- 205,220 ---- */ public final SignedNamedObject read(final SignedNamedCore core, final Element elem) throws InvalidNamedObjectException { ! final Element issuerElement = InvalidNamedObjectException.assertContainsElementId(core, elem, "asset.issuer.publickey"); ! final Element serviceKeyElement = InvalidNamedObjectException.assertContainsElementId(core, elem, "controller.publickey"); ! final Attribute url = (Attribute) elem.selectSingleNode("//html/head/link[starts-with(@rel,'neu:controller')]/@href"); ! if (url == null || url.getValue() == null) ! throw new InvalidNamedObjectException(core.getName(), "Asset didnt contain a controller"); try { final PublicKey sPub = extractPublicKey(serviceKeyElement); ! final PublicKey iPub = extractPublicKey(issuerElement); final int decimal = extractDecimalPoints(elem); final double minimum = extractMinimumTransactionAmount(elem); final Targets targets = Targets.parseList(elem); ! return new Asset(core, url.getValue(), sPub, iPub, targets, decimal, minimum); } catch (XMLSecurityException e) { throw new InvalidNamedObjectException("invalid asset xml"); *************** *** 224,228 **** private static double extractMinimumTransactionAmount(Element elem) { ! Element melem = elem.element(AssetGlobals.createQName(AssetGlobals.MINIMUM_TAGNAME)); if (melem == null || Utility.isEmpty(melem.getTextTrim())) return 0.0; --- 226,230 ---- private static double extractMinimumTransactionAmount(Element elem) { ! Element melem = XMLTools.getByID(elem, "asset.minimum"); if (melem == null || Utility.isEmpty(melem.getTextTrim())) return 0.0; *************** *** 232,236 **** private static int extractDecimalPoints(Element elem) { ! Element melem = elem.element(AssetGlobals.createQName(AssetGlobals.DECIMAL_POINT_TAGNAME)); if (melem == null || Utility.isEmpty(melem.getTextTrim())) return 0; --- 234,238 ---- private static int extractDecimalPoints(Element elem) { ! Element melem = XMLTools.getByID(elem, "asset.decimalpoints"); if (melem == null || Utility.isEmpty(melem.getTextTrim())) return 0; |