List of usage examples for java.beans XMLEncoder writeObject
public void writeObject(Object o)
From source file:de.huxhorn.lilith.swing.ApplicationPreferences.java
private boolean writeConditions(List<SavedCondition> conditions) { File appPath = getStartupApplicationPath(); File file = new File(appPath, CONDITIONS_XML_FILENAME); XMLEncoder e = null; Throwable error = null;/*from w ww . ja v a 2s . com*/ try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); e = new XMLEncoder(bos); e.writeObject(conditions); if (logger.isInfoEnabled()) logger.info("Wrote conditions {}.", conditions); } catch (FileNotFoundException ex) { error = ex; } finally { if (e != null) { e.close(); } } if (error != null) { if (logger.isWarnEnabled()) logger.warn("Exception while writing source lists!", error); return false; } return true; }
From source file:org.openmrs.reporting.ReportObjectXMLEncoder.java
@SuppressWarnings("unchecked") public String toXmlString() { ByteArrayOutputStream arr = new ByteArrayOutputStream(); EnumDelegate enumDelegate = new EnumDelegate(); XMLEncoder enc = new XMLEncoder(new BufferedOutputStream(arr)); enc.setPersistenceDelegate(User.class, new UserDelegate()); enc.setPersistenceDelegate(Location.class, new LocationDelegate()); enc.setPersistenceDelegate(Cohort.class, new CohortDelegate()); enc.setPersistenceDelegate(Concept.class, new ConceptDelegate()); enc.setPersistenceDelegate(Drug.class, new DrugDelegate()); enc.setPersistenceDelegate(Encounter.class, new EncounterDelegate()); enc.setPersistenceDelegate(Patient.class, new PatientDelegate()); enc.setPersistenceDelegate(Program.class, new ProgramDelegate()); enc.setPersistenceDelegate(ProgramWorkflow.class, new ProgramWorkflowDelegate()); enc.setPersistenceDelegate(ProgramWorkflowState.class, new ProgramWorkflowStateDelegate()); enc.setPersistenceDelegate(ConceptAnswer.class, new ConceptAnswerDelegate()); enc.setPersistenceDelegate(EncounterType.class, new EncounterTypeDelegate()); enc.setPersistenceDelegate(PersonAttributeType.class, new PersonAttributeTypeDelegate()); enc.setPersistenceDelegate(ConceptNumeric.class, new ConceptNumericDelegate()); Set<Class> alreadyAdded = new HashSet<Class>(); {//from ww w. j a v a2 s .co m List<Class> enumClasses = new ArrayList<Class>(); enumClasses.add(PatientSetService.Modifier.class); enumClasses.add(PatientSetService.TimeModifier.class); enumClasses.add(PatientSetService.BooleanOperator.class); enumClasses.add(PatientSetService.GroupMethod.class); for (Class clz : enumClasses) { enc.setPersistenceDelegate(clz, enumDelegate); alreadyAdded.add(clz); } } // This original implementation won't handle enums that aren't direct properties of the bean, but I'm leaving it here anyway. for (Field f : this.objectToEncode.getClass().getDeclaredFields()) { Class clz = f.getType(); if (clz.isEnum() && !alreadyAdded.contains(clz)) { try { enc.setPersistenceDelegate(clz, enumDelegate); alreadyAdded.add(clz); } catch (Exception e) { log.error("ReportObjectXMLEncoder failed to write enumeration " + f.getName(), e); } } } log.debug("objectToEncode.type: " + objectToEncode.getClass()); enc.writeObject(this.objectToEncode); enc.close(); return arr.toString(); }
From source file:org.ejbca.core.protocol.ws.EjbcaWS.java
@Override public byte[] getProfile(int profileId, String profileType) throws AuthorizationDeniedException, EjbcaException, UnknownProfileTypeException { final EjbcaWSHelper ejbhelper = new EjbcaWSHelper(wsContext, authorizationSession, caAdminSession, caSession, certificateProfileSession, certificateStoreSession, endEntityAccessSession, endEntityProfileSession, hardTokenSession, endEntityManagementSession, webAuthenticationSession, cryptoTokenManagementSession); final AuthenticationToken admin = ejbhelper.getAdmin(); final IPatternLogger logger = TransactionLogger.getPatternLogger(); logAdminName(admin, logger);// ww w .java 2s . c o m UpgradeableDataHashMap profile = null; if (StringUtils.equalsIgnoreCase(profileType, "eep")) { profile = endEntityProfileSession.getEndEntityProfileNoClone(profileId); if (profile == null) { throw EjbcaWSHelper.getEjbcaException( new EndEntityProfileNotFoundException( "Could not find end entity profile with ID '" + profileId + "' in the database."), null, ErrorCode.EE_PROFILE_NOT_EXISTS, null); } } else if (StringUtils.equalsIgnoreCase(profileType, "cp")) { profile = certificateProfileSession.getCertificateProfile(profileId); if (profile == null) { throw EjbcaWSHelper.getEjbcaException( new CertificateProfileDoesNotExistException( "Could not find certificate profile with ID '" + profileId + "' in the database."), null, ErrorCode.CERT_PROFILE_NOT_EXISTS, null); } } else { throw new UnknownProfileTypeException("Unknown profile type '" + profileType + "'. Recognized types are 'eep' for End Entity Profiles and 'cp' for Certificate Profiles"); } ByteArrayOutputStream baos = new ByteArrayOutputStream(); XMLEncoder encoder = new XMLEncoder(baos); encoder.writeObject(profile.saveData()); encoder.close(); byte[] ba = baos.toByteArray(); try { baos.close(); } catch (IOException e) { throw EjbcaWSHelper.getInternalException(e, logger); } finally { logger.writeln(); logger.flush(); } return ba; }
From source file:com.projity.pm.graphic.frames.GraphicManager.java
/** * Encode the current workspace and store it off in lastWorkspace. * Currently I use an XML format for easier debugging. It could be serialized as binary as well since * all objects in the graph implement Serializable * *//*from www . ja v a2s . c o m*/ private void encodeWorkspaceXML() { ByteArrayOutputStream stream = new ByteArrayOutputStream(); XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(stream)); encoder.writeObject(createWorkspace(SavableToWorkspace.VIEW)); encoder.close(); lastWorkspace = stream.toString(); // System.out.println(lastWorkspace); }
From source file:ddf.catalog.source.solr.SolrProviderTest.java
@Test public void testExtensibleMetacards() throws IngestException, UnsupportedQueryException { deleteAllIn(provider);//from w ww . j a v a 2 s .c o m String brandNewField1 = "description"; String brandNewFieldValue1 = "myDescription"; /* BASIC STRINGS */ Set<AttributeDescriptor> descriptors = new HashSet<AttributeDescriptor>(); descriptors.add(new AttributeDescriptorImpl(Metacard.ID, true, true, true, false, BasicTypes.STRING_TYPE)); descriptors .add(new AttributeDescriptorImpl(brandNewField1, true, true, true, false, BasicTypes.STRING_TYPE)); MetacardTypeImpl mType = new MetacardTypeImpl("custom1", descriptors); MetacardImpl customMetacard = new MetacardImpl(mType); // customMetacard.setAttribute("id", "44567880"); customMetacard.setAttribute(brandNewField1, brandNewFieldValue1); create(customMetacard); // search id Query query = new QueryImpl(filterBuilder.attribute("id").like().text("*")); QueryRequest request = new QueryRequestImpl(query); SourceResponse response = provider.query(request); assertEquals(1, response.getResults().size()); assertEquals("custom1", response.getResults().get(0).getMetacard().getMetacardType().getName()); assertThat(response.getResults().get(0).getMetacard().getMetacardType().getAttributeDescriptors(), equalTo(descriptors)); // search title - * query = new QueryImpl(filterBuilder.attribute(brandNewField1).like().text("*")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); assertEquals("custom1", response.getResults().get(0).getMetacard().getMetacardType().getName()); assertThat(response.getResults().get(0).getMetacard().getMetacardType().getAttributeDescriptors(), equalTo(descriptors)); // search title - exact query = new QueryImpl(filterBuilder.attribute(brandNewField1).equalTo().text(brandNewFieldValue1)); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); // search negative query = new QueryImpl(filterBuilder.attribute(brandNewField1).like().text("no")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(0, response.getResults().size()); // NEW TYPE String brandNewXmlField1 = "author"; String brandNewXmlFieldValue1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<author>john doe</author>"; descriptors = new HashSet<AttributeDescriptor>(); descriptors.add(new AttributeDescriptorImpl(Metacard.ID, true, true, true, false, BasicTypes.STRING_TYPE)); descriptors .add(new AttributeDescriptorImpl(brandNewXmlField1, true, true, true, false, BasicTypes.XML_TYPE)); mType = new MetacardTypeImpl("34ga$^TGHfg:/", descriptors); customMetacard = new MetacardImpl(mType); // customMetacard.setAttribute(Metacard.ID, "44567880"); customMetacard.setAttribute(brandNewXmlField1, brandNewXmlFieldValue1); create(customMetacard); // Two Ids query = new QueryImpl(filterBuilder.attribute(Metacard.ID).like().text("*")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(2, response.getResults().size()); // search xml query = new QueryImpl(filterBuilder.attribute(brandNewXmlField1).like().caseSensitiveText("doe")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); assertEquals("34ga$^TGHfg:/", response.getResults().get(0).getMetacard().getMetacardType().getName()); assertThat(response.getResults().get(0).getMetacard().getMetacardType().getAttributeDescriptors(), equalTo(descriptors)); // search xml - negative query = new QueryImpl(filterBuilder.attribute(brandNewXmlField1).like().text("author")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(0, response.getResults().size()); // EVERYTHING ELSE type String doubleField = "hertz"; double doubleFieldValue = 16065.435; String floatField = "inches"; float floatFieldValue = 4.435f; String intField = "count"; int intFieldValue = 4; String longField = "milliseconds"; long longFieldValue = 987654322111L; String byteField = "bytes"; byte[] byteFieldValue = { 86 }; String booleanField = "expected"; boolean booleanFieldValue = true; String dateField = "lost"; Date dateFieldValue = new Date(); String geoField = "geo"; String geoFieldValue = GULF_OF_GUINEA_POINT_WKT; String shortField = "daysOfTheWeek"; short shortFieldValue = 1; String objectField = "payload"; BevelBorder objectFieldValue = new BevelBorder(BevelBorder.RAISED); descriptors = new HashSet<AttributeDescriptor>(); descriptors.add(new AttributeDescriptorImpl(Metacard.ID, true, true, true, false, BasicTypes.STRING_TYPE)); descriptors.add(new AttributeDescriptorImpl(doubleField, true, true, false, false, BasicTypes.DOUBLE_TYPE)); descriptors.add(new AttributeDescriptorImpl(floatField, true, true, false, false, BasicTypes.FLOAT_TYPE)); descriptors.add(new AttributeDescriptorImpl(intField, true, true, false, false, BasicTypes.INTEGER_TYPE)); descriptors.add(new AttributeDescriptorImpl(longField, true, true, false, false, BasicTypes.LONG_TYPE)); descriptors.add(new AttributeDescriptorImpl(byteField, false, true, false, false, BasicTypes.BINARY_TYPE)); descriptors .add(new AttributeDescriptorImpl(booleanField, true, true, false, false, BasicTypes.BOOLEAN_TYPE)); descriptors.add(new AttributeDescriptorImpl(dateField, true, true, false, false, BasicTypes.DATE_TYPE)); descriptors.add(new AttributeDescriptorImpl(geoField, true, true, false, false, BasicTypes.GEO_TYPE)); descriptors.add(new AttributeDescriptorImpl(shortField, true, true, false, false, BasicTypes.SHORT_TYPE)); descriptors .add(new AttributeDescriptorImpl(objectField, false, true, false, false, BasicTypes.OBJECT_TYPE)); mType = new MetacardTypeImpl("numbersMT", descriptors); customMetacard = new MetacardImpl(mType); // customMetacard.setAttribute(Metacard.ID, "245gasg324"); customMetacard.setAttribute(doubleField, doubleFieldValue); customMetacard.setAttribute(floatField, floatFieldValue); customMetacard.setAttribute(intField, intFieldValue); customMetacard.setAttribute(longField, longFieldValue); customMetacard.setAttribute(byteField, byteFieldValue); customMetacard.setAttribute(booleanField, booleanFieldValue); customMetacard.setAttribute(dateField, dateFieldValue); customMetacard.setAttribute(geoField, geoFieldValue); customMetacard.setAttribute(shortField, shortFieldValue); customMetacard.setAttribute(objectField, objectFieldValue); create(customMetacard); // Three Ids query = new QueryImpl(filterBuilder.attribute(Metacard.ID).like().text("*")); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(3, response.getResults().size()); // search double query = new QueryImpl(filterBuilder.attribute(doubleField).greaterThan().number(doubleFieldValue - 1.0)); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); // search int query = new QueryImpl(filterBuilder.attribute(intField).greaterThan().number(intFieldValue - 1)); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); Metacard resultMetacard = response.getResults().get(0).getMetacard(); assertThat(resultMetacard.getAttribute(Metacard.ID), notNullValue()); assertThat((Double) (resultMetacard.getAttribute(doubleField).getValue()), equalTo(doubleFieldValue)); assertThat((Integer) (resultMetacard.getAttribute(intField).getValue()), equalTo(intFieldValue)); assertThat((Float) (resultMetacard.getAttribute(floatField).getValue()), equalTo(floatFieldValue)); assertThat((Long) (resultMetacard.getAttribute(longField).getValue()), equalTo(longFieldValue)); assertThat((byte[]) (resultMetacard.getAttribute(byteField).getValue()), equalTo(byteFieldValue)); assertThat((Boolean) (resultMetacard.getAttribute(booleanField).getValue()), equalTo(booleanFieldValue)); assertThat((Date) (resultMetacard.getAttribute(dateField).getValue()), equalTo(dateFieldValue)); assertThat((String) (resultMetacard.getAttribute(geoField).getValue()), equalTo(geoFieldValue)); assertThat((Short) (resultMetacard.getAttribute(shortField).getValue()), equalTo(shortFieldValue)); assertThat((BevelBorder) (resultMetacard.getAttribute(objectField).getValue()), instanceOf(BevelBorder.class)); /* * Going to use the XMLEncoder. If it writes out the objects the same way in xml, then they * are the same. */ ByteArrayOutputStream beveledBytesStreamFromSolr = new ByteArrayOutputStream(); XMLEncoder solrXMLEncoder = new XMLEncoder(new BufferedOutputStream(beveledBytesStreamFromSolr)); solrXMLEncoder.writeObject((resultMetacard.getAttribute(objectField).getValue())); solrXMLEncoder.close(); ByteArrayOutputStream beveledBytesStreamOriginal = new ByteArrayOutputStream(); XMLEncoder currendEncoder = new XMLEncoder(new BufferedOutputStream(beveledBytesStreamOriginal)); currendEncoder.writeObject(objectFieldValue); currendEncoder.close(); assertThat(beveledBytesStreamFromSolr.toByteArray(), equalTo(beveledBytesStreamOriginal.toByteArray())); // search short query = new QueryImpl(filterBuilder.attribute(shortField).greaterThanOrEqualTo().number(shortFieldValue)); request = new QueryRequestImpl(query); response = provider.query(request); assertEquals(1, response.getResults().size()); resultMetacard = response.getResults().get(0).getMetacard(); }