Example usage for org.apache.commons.lang SerializationUtils clone

List of usage examples for org.apache.commons.lang SerializationUtils clone

Introduction

In this page you can find the example usage for org.apache.commons.lang SerializationUtils clone.

Prototype

public static Object clone(Serializable object) 

Source Link

Document

Deep clone an Object using serialization.

This is many times slower than writing clone methods by hand on all objects in your object graph.

Usage

From source file:org.apache.torque.criteria.CriteriaTest.java

/**
 * Test that {@link Criteria#equals(Object)} works correctly for a simple
 * Criteria object./*from ww w .j  a v  a  2 s  .  c  o  m*/
 * @throws TorqueException
 */
public void testEquals() throws TorqueException {
    c.addSelectColumn(new ColumnImpl("Author", "NAME"));
    c.addSelectColumn(new ColumnImpl("Author", "AUTHOR_ID"));
    c.where(new ColumnImpl("Author", "NAME"), "foobar");
    Criteria cClone = (Criteria) SerializationUtils.clone(c);
    assertTrue(c.equals(cClone));
}

From source file:org.apache.torque.util.CriteriaTest.java

/**
 * Test that serialization works./*  w  w  w.  java  2s  .c  om*/
 */
public void testSerialization() {
    c.setOffset(10);
    c.setLimit(11);
    c.setIgnoreCase(true);
    c.setSingleRecord(true);
    c.setDbName("myDB");
    c.setAll();
    c.setDistinct();
    c.addSelectColumn(new ColumnImpl("Author", "NAME"));
    c.addSelectColumn(new ColumnImpl("Author", "AUTHOR_ID"));
    c.addDescendingOrderByColumn(new ColumnImpl("Author", "NAME"));
    c.addAscendingOrderByColumn(new ColumnImpl("Author", "AUTHOR_ID"));
    c.addAlias("Writer", "Author");
    c.addAsColumn("AUTHOR_NAME", new ColumnImpl("Author", "NAME"));
    c.addJoin(new ColumnImpl("Author", "AUTHOR_ID"), new ColumnImpl("Book", "AUTHOR_ID"), Criteria.INNER_JOIN);
    c.add(new ColumnImpl("Author", "NAME"), "author%", Criteria.LIKE);

    // Some direct Criterion checks
    Criterion cn = c.getCriterion(new ColumnImpl("Author", "NAME"));
    cn.setIgnoreCase(true);
    assertEquals("author%", cn.getValue());
    assertEquals(Criteria.LIKE, cn.getComparison());
    Criterion cnDirectClone = (Criterion) SerializationUtils.clone(cn);
    assertEquals(cn, cnDirectClone);

    // Clone the object
    Criteria cClone = (Criteria) SerializationUtils.clone(c);

    // Check the clone
    assertEquals(c.size(), cClone.size());
    assertEquals(10, cClone.getOffset());
    assertEquals(c.getOffset(), cClone.getOffset());
    assertEquals(11, cClone.getLimit());
    assertEquals(c.getLimit(), cClone.getLimit());
    assertEquals(true, cClone.isIgnoreCase());
    assertEquals(c.isIgnoreCase(), cClone.isIgnoreCase());
    assertEquals(true, cClone.isSingleRecord());
    assertEquals(c.isSingleRecord(), cClone.isSingleRecord());
    assertEquals("myDB", cClone.getDbName());
    assertEquals(c.getDbName(), cClone.getDbName());
    List selectModifiersClone = cClone.getSelectModifiers();
    assertTrue(selectModifiersClone.contains(Criteria.ALL.toString()));
    assertTrue(selectModifiersClone.contains(Criteria.DISTINCT.toString()));
    assertEquals(c.getSelectModifiers(), cClone.getSelectModifiers());
    List selectColumnsClone = cClone.getSelectColumns();
    assertTrue(selectColumnsClone.contains(new ColumnImpl("Author", "NAME")));
    assertTrue(selectColumnsClone.contains(new ColumnImpl("Author", "AUTHOR_ID")));
    assertEquals(c.getSelectColumns(), cClone.getSelectColumns());
    List orderByColumnsClone = cClone.getOrderByColumns();
    assertTrue(orderByColumnsClone.contains(new OrderBy(new ColumnImpl("Author.NAME"), SqlEnum.DESC, false)));
    assertTrue(
            orderByColumnsClone.contains(new OrderBy(new ColumnImpl("Author.AUTHOR_ID"), SqlEnum.ASC, false)));
    assertEquals(c.getOrderByColumns(), cClone.getOrderByColumns());
    Map aliasesClone = cClone.getAliases();
    assertTrue(aliasesClone.containsKey("Writer"));
    assertEquals("Author", aliasesClone.get("Writer"));
    assertEquals(c.getAliases(), cClone.getAliases());
    Map asColumnsClone = cClone.getAsColumns();
    assertTrue(asColumnsClone.containsKey("AUTHOR_NAME"));
    assertEquals(new ColumnImpl("Author", "NAME"), asColumnsClone.get("AUTHOR_NAME"));
    assertEquals(c.getAsColumns(), cClone.getAsColumns());

    // Check Joins
    List joinsClone = cClone.getJoins();
    Join joinClone = (Join) joinsClone.get(0);
    assertEquals(new ColumnImpl("Author", "AUTHOR_ID"), joinClone.getJoinCondition().getLValue());
    assertEquals(new ColumnImpl("Book", "AUTHOR_ID"), joinClone.getJoinCondition().getRValue());
    assertEquals(Criteria.INNER_JOIN, joinClone.getJoinType());
    assertEquals(c.getJoins(), cClone.getJoins());

    // Some Criterion checks
    Criterion cnClone = cClone.getCriterion(new ColumnImpl("Author", "NAME"));
    assertEquals("author%", cnClone.getValue());
    assertEquals(Criteria.LIKE, cnClone.getComparison());
    assertEquals(cn.isIgnoreCase(), cnClone.isIgnoreCase());

    // Confirm that equals() checks all of the above.
    assertEquals(c, cClone);

    // Check hashCode() too.
    assertEquals(c.hashCode(), cClone.hashCode());
}

From source file:org.apache.torque.util.CriteriaTest.java

/**
 * Test that {@link Criteria#equals(Object)} works correctly for a simple
 * Criteria object./*from  w w  w  .  j  av  a 2 s  .c  o  m*/
 * @throws TorqueException
 */
public void testEquals() throws TorqueException {
    c.addSelectColumn(new ColumnImpl("Author", "NAME"));
    c.addSelectColumn(new ColumnImpl("Author", "AUTHOR_ID"));
    c.add(new ColumnImpl("Author", "NAME"), "foobar");
    Criteria cClone = (Criteria) SerializationUtils.clone(c);
    assertTrue(c.equals(cClone));
}

From source file:org.artifactory.build.DetailedBuildRunImpl.java

@Override
@Nonnull/*from  w w w .  ja v  a 2  s.  co m*/
public DetailedBuildRun copy(String buildNumber) {
    Build copy = (Build) SerializationUtils.clone(build);
    copy.setStartedDate(new Date());
    if (StringUtils.isNotBlank(buildNumber)) {
        copy.setNumber(buildNumber);
    }
    return new DetailedBuildRunImpl(copy);
}

From source file:org.artifactory.common.wicket.component.table.groupable.GroupedItemsStrategy.java

@Override
public <T> Iterator<Item<T>> getItems(final IItemFactory<T> factory, final Iterator<IModel<T>> newModels,
        Iterator<Item<T>> existingItems) {
    return new Iterator<Item<T>>() {
        private int index = 0;

        private Object lastGroupValue;
        private Item<T> lastGroupItem;
        private IModel<T> lastGroupModel;

        @Override//  w  ww .  j  ava2s  .  com
        public void remove() {
            throw new UnsupportedOperationException();
        }

        @Override
        public boolean hasNext() {
            return lastGroupModel != null || newModels.hasNext();
        }

        @Override
        @SuppressWarnings({ "unchecked" })
        public Item<T> next() {
            // returned group item in last iteration, return saved model item
            if (lastGroupModel != null) {
                Item<T> item = newRowItem(lastGroupModel);
                lastGroupModel = null;
                return item;
            }

            IModel<T> model = newModels.next();
            GroupableDataProvider provider = table.getGroupableDataProvider();
            SortParam groupParam = provider.getGroupParam();
            if (groupParam != null && model != null) {
                String property = groupParam.getProperty();
                IChoiceRenderer renderer = provider.getGroupRenderer(property);
                T modelObject = model.getObject();
                Object value = renderer.getIdValue(modelObject, index);
                if (!value.equals(lastGroupValue)) {
                    lastGroupValue = value;
                    lastGroupModel = model;
                    GroupableTable modificationTable = (GroupableTable) SerializationUtils.clone(table);
                    lastGroupItem = modificationTable.newGroupRowItem("group" + index, index, model);
                    Item cellItem = modificationTable.newGroupCellItem("cells", 0, model);
                    lastGroupItem.add(cellItem);
                    modificationTable.populateGroupItem(cellItem, "cell", property, model);
                    return lastGroupItem;
                }
            }
            return newRowItem(model);
        }

        @SuppressWarnings({ "unchecked" })
        private Item<T> newRowItem(IModel<T> model) {
            Item<T> item = factory.newItem(index, model);
            if (lastGroupItem != null && !table.isGroupExpanded(lastGroupItem)
                    && table.getGroupableDataProvider().getGroupParam() != null) {
                item.add(new CssClass("row-collapsed"));
            }
            index++;
            return item;
        }
    };
}

From source file:org.artifactory.config.CentralConfigServiceImpl.java

@Override
public MutableCentralConfigDescriptor getMutableDescriptor() {
    return (MutableCentralConfigDescriptor) SerializationUtils.clone(descriptor);
}

From source file:org.cbioportal.weblegacy.ApiControllerTest.java

private List<Mutation> getGeneticprofiledataQuery1ServiceMock() {
    if (geneticprofiledataQuery1ServiceMock != null) {
        return geneticprofiledataQuery1ServiceMock;
    }/*w ww .ja  v  a 2s .  c  o  m*/
    List<Mutation> fullMock = this.getGeneticprofiledataQuery1PersistenceFullMock();
    geneticprofiledataQuery1ServiceMock = new ArrayList<Mutation>(fullMock.size());
    for (Mutation fullMutation : fullMock) {
        Mutation clone = (Mutation) SerializationUtils.clone(fullMutation);
        this.applyNullMaskToMutationModel(clone);
        geneticprofiledataQuery1ServiceMock.add(clone);
    }
    return geneticprofiledataQuery1ServiceMock;
}

From source file:org.cesecore.util.ui.DynamicUiProperty.java

/**
 * Copy constructor for DynamicUiProperty objects
 * @param original the original property
 *//*from ww  w.  ja  v a2  s  . c om*/
@SuppressWarnings("unchecked")
public DynamicUiProperty(final DynamicUiProperty<T> original) {
    this.name = original.getName();
    this.defaultValue = original.getDefaultValue();
    this.setHasMultipleValues(original.getHasMultipleValues());
    if (!original.hasMultipleValues) {
        setValue((T) SerializationUtils.clone(original.getValue()));
    } else {
        List<T> clonedValues = new ArrayList<>();
        for (T value : original.getValues()) {
            clonedValues.add((T) SerializationUtils.clone(value));
        }
        setValues(clonedValues);
    }
    this.possibleValues = original.getPossibleValues();
    this.propertyCallback = original.getPropertyCallback();
    this.type = original.getType();
}

From source file:org.datacleaner.connection.JdbcDatastoreTest.java

public void testSerializationAndDeserialization() throws Exception {
    JdbcDatastore ds = new JdbcDatastore("name", "url", "driver", "username", "pw", true);

    Object clone = SerializationUtils.clone(ds);
    assertEquals(ds, clone);//w w  w . jav a 2 s. c  o m
}

From source file:org.datacleaner.connection.UsageAwareDatastoreTest.java

public void testSerializationAndDeserializationOfAllDatastoreTypes() throws Exception {
    List<UsageAwareDatastore<?>> datastores = new ArrayList<UsageAwareDatastore<?>>();
    datastores.add(new AccessDatastore("access", "bar.mdb"));
    datastores.add(new CsvDatastore("csv", "bar.csv"));
    datastores.add(new DbaseDatastore("dbase", "bar.dbf"));
    datastores.add(new ExcelDatastore("excel", null, "bar.xls"));
    datastores.add(new JdbcDatastore("jdbc", "url"));
    datastores.add(new FixedWidthDatastore("fixedwidth", "foo.dat", "UTF8", new int[] { 1, 2, 3 }));
    datastores.add(new CompositeDatastore("foo",
            Arrays.<Datastore>asList(datastores.get(0), datastores.get(1), datastores.get(3))));

    for (UsageAwareDatastore<?> ds : datastores) {
        System.out.println("Cloning datastore: " + ds);
        Object clone = SerializationUtils.clone(ds);
        assertEquals(ds, clone);/*from   w ww . java 2  s  . co m*/
    }
}