Package com.cloud.gate.util

Source Code of com.cloud.gate.util.SubFoo

package com.cloud.gate.util;


import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;

import com.cloud.bridge.util.DateHelper;
import com.cloud.bridge.util.StringHelper;
import com.cloud.bridge.util.XElement;
import com.cloud.bridge.util.XSerializer;
import com.cloud.bridge.util.XSerializerJsonAdapter;
import com.cloud.bridge.util.XSerializerXmlAdapter;
import com.cloud.gate.testcase.BaseTestCase;

import junit.framework.Assert;

class SubFoo {
  @XElement(name="Name")
  private String name;
 
  @XElement(name="Value")
  private String value;
 
  public SubFoo() {
  }
 
  public SubFoo(String n, String v) {
    name = n;
    value = v;
  }
}

class BaseFoo {
  @XElement(name="BaseName")
  private String baseName;
 
  @XElement(name="BaseValue")
  private String baseValue;
 
  public BaseFoo() {
    baseName="baseName";
    baseValue="baseValue";
  }
}

class Foo extends BaseFoo {
  @XElement(name="Name")
  private String name;
 
  @XElement(name="Value")
  private String value;
 
  @XElement(name="ByteValue")
  private byte bValue;
 
  @XElement(name="ShortValue")
  private short sValue;
 
  @XElement(name="LongValue")
  private long lValue;
 
  @XElement(name="NullValue")
  private String nullValue;
 
  @XElement(name="TimeValue")
  private Date dt = new Date();
 
  @XElement(name="CalendarValue")
  private Calendar cal = Calendar.getInstance();
 
  @XElement(name="SubObject")
  public SubFoo sub;
 
  @XElement(name="SubObjects", item="ListItem", itemClass="com.cloud.gate.util.SubFoo")
  public List<SubFoo> subs;
 
  @XElement(name="ArrayObjects", item="ArrayItem", itemClass="com.cloud.gate.util.SubFoo")
  public SubFoo[] subArray;
 
  public Foo() {
    subs = new ArrayList<SubFoo>();
  }
 
  public Foo(String name, String value) {
    this.name = name;
    this.value = value;
   
    subs = new ArrayList<SubFoo>();
  }
}

public class UtilTestCase extends BaseTestCase {
    protected final static Logger logger = Logger.getLogger(UtilTestCase.class);
 
  public void testStringHelper() {
    String value = StringHelper.substringInBetween("archive/doc1.doc", "archive", "/");
    Assert.assertTrue(value == null);
   
    value = StringHelper.substringInBetween("archive/sub1/doc1.doc", "archive", "/");
    Assert.assertTrue(value.equals("sub1"));
   
    value = StringHelper.substringInBetween("archive/sub2/doc1.doc", "archive", "/");
    Assert.assertTrue(value.equals("sub2"));
   
    value = StringHelper.substringInBetween("archive/sub3/subb/doc1.doc", "archive", "/");
    Assert.assertTrue(value.equals("sub3"));
   
    value = StringHelper.substringInBetween("archive/sub3/subb/doc1.doc", "archive/sub3", "/");
    Assert.assertTrue(value.equals("subb"));
   
    value = StringHelper.substringInBetween("archive/sub3/subb/doc1.doc", null, "/");
    Assert.assertTrue(value.equals("archive"));
  }
 
  public void testJava2XmlJson() {
    XSerializer serializer = new XSerializer(new XSerializerXmlAdapter());
    serializer.setFlattenCollection(true);
    serializer.setOmitNull(true);
    Foo foo = new Foo("dummyName", "dummyValue");
    foo.sub = new SubFoo("subName", "subValue");
    foo.subs.add(new SubFoo("Sub1", "Sub1-value"));
    foo.subs.add(new SubFoo("Sub2", "Sub2-value"));
   
    foo.subArray = new SubFoo[3];
    foo.subArray[0] = new SubFoo("Array-sub1", "Sub1-value");
    foo.subArray[1] = new SubFoo("Array-sub2", "Sub1-value");
    foo.subArray[2] = new SubFoo("Array-sub3", "Sub1-value");
   
    String output = serializer.serializeTo(foo, "Foo", "http://www.cloud.com/S3", 0);
    logger.info(output);
   
    serializer = new XSerializer(new XSerializerJsonAdapter());
    output = serializer.serializeTo(foo, "Foo", "http://www.cloud.com/S3", 0);
    logger.info(output);
  }
 
  public void testXml2Java() {
    XSerializer serializer = new XSerializer(new XSerializerXmlAdapter());
    serializer.setFlattenCollection(true);
    XSerializer.registerRootType("Foo", Foo.class);
   
    try {
      InputStream is = this.getClass().getResourceAsStream("/com/cloud/gate/util/Xml2JavaTestData.xml");
      String xml = StringHelper.stringFromStream(is);
      Object object = serializer.serializeFrom(xml);
      if(object != null) {
        String output = serializer.serializeTo(object, "Foo", "http://www.cloud.com/S3", 0);
        logger.info("Redump parsed java object");
        logger.info(output);
      }
      is.close();
    } catch(IOException e) {
      logger.error("Unexpected exception " + e.getMessage(), e);
    }
  }
 
  public void testMisc() {
    String[] tokens = "/".split("/");
    logger.info("length : " + tokens.length);
    for(int i = 0; i < tokens.length; i++) {
      logger.info("token " + i + ": " + tokens[i]);
    }
   
    logger.info(DateHelper.getDateDisplayString(
      DateHelper.GMT_TIMEZONE, new Date(), "E, d MMM yyyy HH:mm:ss z"));
  }
}
TOP

Related Classes of com.cloud.gate.util.SubFoo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.