package NFP.Algorithms; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import seg.jUCMNav.nfp.generated.*; public class MainClass { @SuppressWarnings("unchecked") public static NFPdescription GetData(String filename) throws Exception{ JAXBContext context; context = JAXBContext.newInstance("seg.jUCMNav.nfp.generated"); Unmarshaller unmarshaller = context.createUnmarshaller(); JAXBElement jxbe = (JAXBElement)unmarshaller.unmarshal( new FileInputStream(filename)); NFPdescription nfps = (NFPdescription)jxbe.getValue(); return nfps; } private static NFPdescription GetResult(NFPdescription nfp1, NFPdescription nfp2) { NFPdescription result = new NFPdescription(); //Availability List Availabilities = new ArrayList(); Availabilities.add(nfp1.getAvailability()); Availabilities.add(nfp2.getAvailability()); result.setAvailability(new AggregateAvailability().getAggregateAvailability(Availabilities, CompositionType.Sequence)); //Jurisdiction List Jurisdictions = new ArrayList(); Jurisdictions.add(nfp1.getJurisdiction()); Jurisdictions.add(nfp2.getJurisdiction()); result.setJurisdiction(new AggregateJurisdiction().getAggregateJurisdiction(Jurisdictions)); //Price List Prices = new ArrayList(); Prices.add(nfp1.getPrice()); Prices.add(nfp2.getPrice()); result.setPrice(new AggregatePrices().getAggregatePrice(nfp1.getPrice().getUnit(), Prices, CompositionType.Sequence)); //Reliability List Reliabilities = new ArrayList(); Reliabilities.add(nfp1.getReliability()); Reliabilities.add(nfp2.getReliability()); result.setReliability(new AggregateReliability().getAggregateReliability(Reliabilities, CompositionType.Sequence)); //Reputation List Reputations = new ArrayList(); Reputations.add(nfp1.getReputation()); Reputations.add(nfp2.getReputation()); result.setReputation(new AggregateReputation().getAggregateReputation(Reputations)); //Resources List Ressources = new ArrayList(); Ressources.add(nfp1.getResource()); Ressources.add(nfp2.getResource()); result.setResource(new AggregateResources().getAggregateResources(Ressources, CompositionType.Sequence)); //ResponseTime List ResponseTimes = new ArrayList(); ResponseTimes.add(nfp1.getResponseTime()); ResponseTimes.add(nfp2.getResponseTime()); result.setResponseTime(new AggregateResponseTime().getAggregateResponseTime(nfp1.getResponseTime().getUnit(), ResponseTimes, CompositionType.Sequence)); //Scalability List Scalabilities = new ArrayList(); Scalabilities.add(nfp1.getScalability()); Scalabilities.add(nfp2.getScalability()); result.setScalability(new AggregateScalability().getAggregateScalability(Scalabilities)); //ServerLocation List Locations = new ArrayList(); Locations.add(nfp1.getServerLocation()); Locations.add(nfp2.getServerLocation()); result.setServerLocation(new AggregateServersLocation().getAggregateLocation(Locations)); //Transactional List TransactionalPlus = new ArrayList(); TransactionalPlus.add(nfp1.getTransactional()); TransactionalPlus.add(nfp2.getTransactional()); result.setTransactional(new AggregateTransactional().getAggregateTransactional(TransactionalPlus)); //Usability List Usabilities = new ArrayList(); Usabilities.add(nfp1.getUsability()); Usabilities.add(nfp2.getUsability()); result.setUsability(new AggregateUsability().getAggregateUsability(Usabilities)); return result; } private static void CreateXML(NFPdescription nfp3, String filename) throws JAXBException, IOException { JAXBContext context = JAXBContext.newInstance("seg.jUCMNav.nfp.generated"); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(nfp3, new FileWriter(filename)); } public static void main(String[] args) throws Exception { NFPdescription nfp1 = GetData("Service1.xml"); NFPdescription nfp2 = GetData("Service2.xml"); NFPdescription nfp3 = GetResult(nfp1,nfp2); CreateXML(nfp3,"Service3.xml"); } }