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.datacleaner.connection.XmlDatastoreTest.java

public void testCloneAndEquals() throws Exception {
    Object clone = SerializationUtils.clone(ds);
    assertEquals(ds, clone);
}

From source file:org.datacleaner.reference.AbstractReferenceDataTest.java

public void testSerializationAndDeserializationOfDictionaries() throws Exception {

    String[] dictionaryNames = referenceDataCatalog.getDictionaryNames();

    for (String name : dictionaryNames) {
        Dictionary dict = referenceDataCatalog.getDictionary(name);

        if (dict instanceof AbstractReferenceData) {
            System.out.println("Cloning dictionary: " + dict);
            Object clone = SerializationUtils.clone(dict);
            if (!dict.equals(clone)) {
                dict.equals(clone);/*from   w ww. j ava  2s .  co  m*/
            }
            assertEquals(dict, clone);
        }
    }
}

From source file:org.datacleaner.reference.AbstractReferenceDataTest.java

public void testSerializationAndDeserializationOfSynonymCatalogs() throws Exception {
    String[] synonymCatalogNames = referenceDataCatalog.getSynonymCatalogNames();

    for (String name : synonymCatalogNames) {
        SynonymCatalog sc = referenceDataCatalog.getSynonymCatalog(name);

        if (sc instanceof AbstractReferenceData) {
            System.out.println("Cloning synonym catalog: " + sc);
            Object clone = SerializationUtils.clone(sc);
            assertEquals(sc, clone);//from  www. ja v a 2  s.  c o  m
        }
    }
}

From source file:org.datacleaner.reference.AbstractReferenceDataTest.java

public void testSerializationAndDeserializationOfStringPatterns() throws Exception {
    String[] patternNames = referenceDataCatalog.getStringPatternNames();

    for (String name : patternNames) {
        StringPattern pattern = referenceDataCatalog.getStringPattern(name);

        if (pattern instanceof AbstractReferenceData) {
            System.out.println("Cloning string pattern: " + pattern);
            Object clone = SerializationUtils.clone(pattern);
            if (!pattern.equals(clone)) {
                System.out.println();
            }/*  w w  w. j ava 2  s  .co m*/
            assertEquals(pattern, clone);
        }
    }
}

From source file:org.digidoc4j.impl.bdoc.tsl.ClonedTslCertificateSource.java

private void initializeClonedTsl() {
    if (certificateSource instanceof LazyTslCertificateSource) {
        ((LazyTslCertificateSource) certificateSource).refreshIfCacheExpired();
    }//from ww w  .j  a va 2 s  .  c o  m
    logger.debug("Cloning TSL");
    clonedCertificateSource = (CertificateSource) SerializationUtils.clone(certificateSource);
    logger.debug("Finished cloning TSL");
}

From source file:org.geomajas.command.configuration.GetMapConfigurationCommand.java

/**
 * Clone layer information considering what may be copied to the client.
 *
 * @param original layer info//from   w  w  w .ja  v  a  2 s  .  c  o m
 * @return cloned copy including only allowed information
 */
public ClientLayerInfo securityClone(ClientLayerInfo original) {
    // the data is explicitly copied as this assures the security is considered when copying.
    if (null == original) {
        return null;
    }
    ClientLayerInfo client = null;
    String layerId = original.getServerLayerId();
    if (securityContext.isLayerVisible(layerId)) {
        client = (ClientLayerInfo) SerializationUtils.clone(original);
        client.setWidgetInfo(securityClone(original.getWidgetInfo()));
        client.getLayerInfo().setExtraInfo(securityCloneLayerExtraInfo(original.getLayerInfo().getExtraInfo()));
        if (client instanceof ClientVectorLayerInfo) {
            ClientVectorLayerInfo vectorLayer = (ClientVectorLayerInfo) client;
            // set statuses
            vectorLayer.setCreatable(securityContext.isLayerCreateAuthorized(layerId));
            vectorLayer.setUpdatable(securityContext.isLayerUpdateAuthorized(layerId));
            vectorLayer.setDeletable(securityContext.isLayerDeleteAuthorized(layerId));
            // filter feature info
            FeatureInfo featureInfo = vectorLayer.getFeatureInfo();
            List<AttributeInfo> originalAttr = featureInfo.getAttributes();
            List<AttributeInfo> filteredAttr = new ArrayList<AttributeInfo>();
            featureInfo.setAttributes(filteredAttr);
            for (AttributeInfo ai : originalAttr) {
                if (securityContext.isAttributeReadable(layerId, null, ai.getName())) {
                    filteredAttr.add(ai);
                }
            }
        }
    }
    return client;
}

From source file:org.geomajas.plugin.caching.service.CacheCategoryTest.java

@Test
public void testCacheCategorySerializable() {
    CacheCategory cacheCategory = new CacheCategory("nieuw");
    CacheCategory clone = (CacheCategory) SerializationUtils.clone(cacheCategory);
    SerializationUtils.serialize(cacheCategory);
}

From source file:org.geomajas.plugin.deskmanager.domain.types.XmlSerialisationType.java

public Object deepCopy(Object value) {
    if (value == null) {
        return value;
    } else if (value instanceof Serializable) {
        return SerializationUtils.clone((Serializable) value);
    } else {/*ww w . ja  v a  2  s . c o  m*/
        LOG.warn("Could not deepCopy object, not serializable. " + value);
        return null;
    }
}

From source file:org.geomajas.plugin.deskmanager.service.common.DynamicLayerLoadServiceImpl.java

public void loadDynamicLayers() {
    log.info("Loading dynamic layers");

    try {/*from ww  w . ja v a  2 s  .c o m*/
        // -- clientside / namedstyleinfo --
        List<BeanDefinitionHolder> holders = new ArrayList<BeanDefinitionHolder>();
        List<NamedObject> objects = new ArrayList<NamedObject>();
        List<String> clientLayerIds = new ArrayList<String>();
        for (LayerModel lm : layerModelService.getDynamicLayerModelsInternal()) {
            log.info(" - creating a dynamic layer for: " + lm.getName());
            try {
                clientLayerIds.add(lm.getClientLayerId());

                //Clone layer configuration so that it doesn't get overwritten in the database.
                DynamicLayerConfiguration clonedLayerConfiguration = (DynamicLayerConfiguration) SerializationUtils
                        .clone(lm.getDynamicLayerConfiguration());

                updateLayerProperties(clonedLayerConfiguration);
                objects.addAll(getClientLayerInfoObject(clonedLayerConfiguration));

                // -- serverside layer bean has to be processed separately --
                Map<String, Object> params = discoService
                        .createBeanLayerDefinitionParameters(clonedLayerConfiguration);
                holders.addAll(beanFactoryService.createBeans(params));

                // Add layer to the dynamicLayersApplication for dto postprocessing
                applicationInfo.getMaps().get(0).getLayers().add(clonedLayerConfiguration.getClientLayerInfo());
            } catch (Exception e) {
                log.warn("Error loading dynamic layers: " + e.getMessage());
            }
        }

        NamedObjectImpl applicationInfoNamedObject = new NamedObjectImpl(applicationInfo,
                "dynamicLayersApplication");
        objects.add(applicationInfoNamedObject);

        holders.addAll(converterService.createBeanDefinitionsByIntrospection(objects));
        activateBeans(holders, clientLayerIds);

        log.info(" - finished loading dynamic layers into context.");
    } catch (Exception e) {
        log.warn("Error activating dynamic layers: " + e.getMessage());
    }
}

From source file:org.geomajas.plugin.deskmanager.service.common.GeodeskConfigurationServiceImpl.java

public ClientApplicationInfo createGeodeskConfiguration(Geodesk geodesk, boolean includeMaps) {
    try {//from  w w w. j  a va2 s. co  m
        geodesk = (Geodesk) session.getCurrentSession().merge(geodesk);
        UserApplicationInfo userApplicationInfo = getUserApplicationInfo(
                geodesk.getBlueprint().getUserApplicationKey());

        ClientApplicationInfo appInfo = (ClientApplicationInfo) SerializationUtils
                .clone(userApplicationInfo.getApplicationInfo());
        BaseGeodesk blueprint = blueprintService.getBlueprintByIdInternal(geodesk.getBlueprint().getId());
        if (includeMaps) {
            ClientMapInfo mainMap = null;
            ClientMapInfo overviewMap = null;
            for (ClientMapInfo map : appInfo.getMaps()) {
                if (GdmLayout.MAPMAIN_ID.equals(map.getId())) {
                    mainMap = map;
                }
                if (GdmLayout.MAPOVERVIEW_ID.equals(map.getId())) {
                    overviewMap = map;
                }
            }

            if (!geodesk.getMainMapLayers().isEmpty()) {
                mainMap.getLayers().clear();
                mainMap.getLayers().addAll(addLayers(geodesk.getMainMapLayers(), blueprint.getMainMapLayers()));
            } else if (!blueprint.getMainMapLayers().isEmpty()) {
                mainMap.getLayers().clear();
                mainMap.getLayers().addAll(addLayers(blueprint.getMainMapLayers(), null));
            }

            if (!geodesk.getOverviewMapLayers().isEmpty()) {
                overviewMap.getLayers().clear();
                overviewMap.getLayers()
                        .addAll(addLayers(geodesk.getOverviewMapLayers(), blueprint.getOverviewMapLayers()));
            } else if (!blueprint.getOverviewMapLayers().isEmpty()) {
                overviewMap.getLayers().clear();
                overviewMap.getLayers().addAll(addLayers(blueprint.getOverviewMapLayers(), null));
            }

            // Set bounds
            if (geodesk.mustFilterByCreatorTerritory()) {
                try {
                    Bbox bounds = GeometryService
                            .getBounds(convertorService.toDto(geodesk.getOwner().getGeometry()));
                    mainMap.setMaxBounds(bounds);
                    mainMap.setInitialBounds(bounds);
                    overviewMap.setMaxBounds(bounds);
                    overviewMap.setInitialBounds(bounds);
                } catch (GeomajasException e) {
                    log.warn("Unable to apply loket territory bounds, falling back to default. {}",
                            e.getLocalizedMessage());
                }
            } else if (geodesk.mustFilterByUserTerritory()) {
                try {
                    Bbox bounds = GeometryService.getBounds(convertorService.toDto(
                            ((DeskmanagerSecurityContext) securityContext).getTerritory().getGeometry()));
                    mainMap.setMaxBounds(bounds);
                    mainMap.setInitialBounds(bounds);
                    overviewMap.setMaxBounds(bounds);
                    overviewMap.setInitialBounds(bounds);
                } catch (GeomajasException e) {
                    log.warn("Unable to apply loket territory bounds, falling back to default. {}",
                            e.getLocalizedMessage());
                }
            }

            // Custom configurations for main map (order matters, overrides)
            mainMap.getWidgetInfo().putAll(userApplicationInfo.getMainMapWidgetInfos());
            mainMap.getWidgetInfo().putAll(blueprint.getMainMapClientWidgetInfos());
            mainMap.getWidgetInfo().putAll(geodesk.getMainMapClientWidgetInfos());

            overviewMap.getWidgetInfo().putAll(userApplicationInfo.getOverviewMapWidgetInfos());
            overviewMap.getWidgetInfo().putAll(blueprint.getOverviewMapClientWidgetInfos());
            overviewMap.getWidgetInfo().putAll(geodesk.getOverviewMapClientWidgetInfos());

        } else {
            appInfo.getMaps().clear(); // no maps here
        }

        // -- custom widget configurations
        appInfo.getWidgetInfo().putAll(userApplicationInfo.getApplicationWidgetInfos());
        appInfo.getWidgetInfo().putAll(blueprint.getApplicationClientWidgetInfos());
        appInfo.getWidgetInfo().putAll(geodesk.getApplicationClientWidgetInfos());

        return appInfo;

    } catch (Exception e) {
        e.printStackTrace();
        log.warn("Error creating configuration: " + e.getMessage());
        return null;
    }
}