lumis.portal.structure.sync
Class SyncUtil

Package class diagram package SyncUtil
java.lang.Object
  extended by lumis.portal.structure.sync.SyncUtil

public class SyncUtil
extends Object

Provides utility methods used by the structure synchronization implementation.

Since:
6.2.0

Constructor Summary
SyncUtil()
           
 
Method Summary
static boolean arePropertiesEquivalent(Object obj1, Object obj2)
          Returns whether the properties of two objects are equivalent.
static void eagerLoad(org.hibernate.Session session, Collection<?> objs)
          Eager loads the given hibernate entity objects.
static ChannelResume getCurrentChannel()
          Returns the channel that corresponds to the file currently being read or written.
static boolean isDefaultValue(Field field, Object value)
          Indicates whether a value is the default value for a field.
static boolean isEquivalent(Object obj1, Object obj2)
          Returns whether two objects are equivalent.
static boolean isEquivalentSortedCollection(Collection<?> col1, Collection<?> col2)
          Returns whether two sorted collections are equivalent.
static String normalizeFilename(String filename)
          Normalizes a filename by replacing special characters by underscore.
static
<T extends IFileElement>
T
read(Class<T> clazz, File file, ChannelResume currentChannel)
          Reads a structure file.
static void shallowUpdate(org.hibernate.Session session, Object obj)
          Performs a shallow update on a hibernate entity object.
static void writeIfModified(IFileElement obj, File file, ChannelResume currentChannel)
          Writes a structure file, only if the semantics in the object is different.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SyncUtil

public SyncUtil()
Method Detail

getCurrentChannel

public static ChannelResume getCurrentChannel()
Returns the channel that corresponds to the file currently being read or written.

Returns:
the channel.
Since:
6.2.0
See Also:
read(Class, File, ChannelResume), #write(Object, File, ChannelResume), #writeIfModified(Object, File, ChannelResume)

read

public static <T extends IFileElement> T read(Class<T> clazz,
                                              File file,
                                              ChannelResume currentChannel)
                                   throws InvalidStructureFileException
Reads a structure file.

Type Parameters:
T - the class mapped to the file root element.
Parameters:
clazz - the class mapped to the file root element.
file - the file.
currentChannel - the channel the file belongs to.
Returns:
the object that corresponds to the file root element, or null if the file does not exist.
Throws:
InvalidStructureFileException - if the file format is invalid.
Since:
6.2.0

writeIfModified

public static void writeIfModified(IFileElement obj,
                                   File file,
                                   ChannelResume currentChannel)
Writes a structure file, only if the semantics in the object is different. If the file already exists it is overwritten.

The write operation will occur locally or in the portal cluster depending on the file object type. If it is a PortalFile the write will be cluster-wide, otherwise it will occur only locally.

Parameters:
obj - the object to be written.
file - the file.
currentChannel - the channel the file belongs to.
Since:
6.2.0

isDefaultValue

public static boolean isDefaultValue(Field field,
                                     Object value)
Indicates whether a value is the default value for a field.

Parameters:
field - the field.
value - the value.
Returns:
true if the value is the default value, false otherwise.
Since:
6.2.0
See Also:
IDefaultAware

isEquivalentSortedCollection

public static boolean isEquivalentSortedCollection(Collection<?> col1,
                                                   Collection<?> col2)
Returns whether two sorted collections are equivalent. They are considered equivalent if are of the same size and all values returned by their iterators are equivalent, in the same order.

Parameters:
col1 - a collection.
col2 - the other collection.
Returns:
true if they are equivalent, false otherwise.
Since:
6.2.0

isEquivalent

public static boolean isEquivalent(Object obj1,
                                   Object obj2)
Returns whether two objects are equivalent.

By default only fields that would be output to the object's XML representation are compared. Relations to other entities are not compared (performs only a shallow comparison).

Custom equivalence rules are used if the object implements ICustomEquivalence.

Parameters:
obj1 - a object.
obj2 - other object.
Returns:
true if the objects are equivalent, false otherwise.
Since:
6.2.0

arePropertiesEquivalent

public static boolean arePropertiesEquivalent(Object obj1,
                                              Object obj2)
Returns whether the properties of two objects are equivalent.

By default only fields that would be output to the object's XML representation are compared. Relations to other entities are not compared (performs only a shallow comparison).

Custom equivalence rules are not used. To use them, use isEquivalent(Object, Object) instead of this method.

Parameters:
obj1 - a object.
obj2 - other object.
Returns:
true if the objects properties are equivalent, false otherwise.
Since:
6.2.0
See Also:
isEquivalent(Object, Object), isEquivalentSortedCollection(Collection, Collection)

shallowUpdate

public static void shallowUpdate(org.hibernate.Session session,
                                 Object obj)
Performs a shallow update on a hibernate entity object.

Parameters:
session - hibernate session for persistence access.
obj - object representing updated data.
Since:
6.2.0

eagerLoad

public static void eagerLoad(org.hibernate.Session session,
                             Collection<?> objs)
Eager loads the given hibernate entity objects. Initializes all of the object's fields that are relations to other entities. Does not cascade the eager loading inside other entities.

Parameters:
session - hibernate session for persistence access.
objs - the objects to load. All of them must be of the same class.
Since:
6.2.0

normalizeFilename

public static String normalizeFilename(String filename)
Normalizes a filename by replacing special characters by underscore.

Parameters:
filename - the filename to be normalized.
Returns:
the normalization result.
Since:
6.2.0


Lumisportal  6.2.0.120405 - Copyright © 2006–2012 Lumis EIP Tecnologia da Informação LTDA. All Rights Reserved.