/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.content.resultset;
import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.commons.lang.builder.HashCodeBuilder;
import com.enonic.cms.core.content.ContentEntity;
import com.enonic.cms.core.content.ContentKey;
import com.enonic.cms.core.content.ContentVersionKey;
public class RelatedParentContent
extends AbstractRelatedContent
implements RelatedContent
{
private ContentKey childContentKey;
private ContentVersionKey parentMainVersionKey;
private Set<RelatedContent> relatedParents = new LinkedHashSet<RelatedContent>();
public RelatedParentContent( ContentKey childContentKey, ContentEntity parent, ContentVersionKey parentMainVersionKey )
{
super( parent );
this.childContentKey = childContentKey;
this.parentMainVersionKey = parentMainVersionKey;
}
public ContentVersionKey getParentMainVersionKey()
{
return parentMainVersionKey;
}
public ContentKey getChildContentKey()
{
return childContentKey;
}
public void addRelatedParent( RelatedParentContent related )
{
relatedParents.add( related );
}
public Iterable<RelatedContent> getRelatedParents()
{
return relatedParents;
}
@Override
public boolean equals( Object o )
{
if ( this == o )
{
return true;
}
if ( o == null || getClass() != o.getClass() )
{
return false;
}
RelatedParentContent that = (RelatedParentContent) o;
if ( !getChildContentKey().equals( that.getChildContentKey() ) )
{
return false;
}
if ( !getContent().equals( that.getContent() ) )
{
return false;
}
return true;
}
@Override
public int hashCode()
{
final int initialNonZeroOddNumber = 175;
final int multiplierNonZeroOddNumber = 663;
return new HashCodeBuilder( initialNonZeroOddNumber, multiplierNonZeroOddNumber ).append( getChildContentKey() ).append(
getContent() ).toHashCode();
}
@Override
public String toString()
{
StringBuffer s = new StringBuffer();
s.append( "RelatedContentParent[" );
s.append( "childContentKey = " ).append( childContentKey );
s.append( ", content = " ).append( getContent().getKey() );
s.append( "]" );
return s.toString();
}
}