package org.tynamo.services;
import org.apache.tapestry5.func.Predicate;
import org.tynamo.descriptor.CollectionDescriptor;
import org.tynamo.descriptor.IdentifierDescriptor;
import org.tynamo.descriptor.TynamoPropertyDescriptor;
import org.tynamo.descriptor.extension.BlobDescriptorExtension;
import org.tynamo.descriptor.extension.EnumReferenceDescriptor;
public class TynamoDataTypeAnalyzerPredicates
{
public static final Predicate<TynamoPropertyDescriptor> nonVisual = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isNonVisual();
}
};
public static final Predicate<TynamoPropertyDescriptor> readOnly = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isReadOnly();
}
};
public static final Predicate<TynamoPropertyDescriptor> richText = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isRichText();
}
};
public static final Predicate<TynamoPropertyDescriptor> password = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.getName().toLowerCase().endsWith("password");
}
};
public static final Predicate<TynamoPropertyDescriptor> date = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isDate();
}
};
public static final Predicate<TynamoPropertyDescriptor> number = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isNumeric();
}
};
public static final Predicate<TynamoPropertyDescriptor> longtext = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor descriptor)
{
return descriptor.isString() & descriptor.isLarge();
}
};
public static final Predicate<TynamoPropertyDescriptor> generatedId = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor descriptor)
{
return descriptor.isIdentifier() && ((IdentifierDescriptor) descriptor).isGenerated();
}
};
public static final Predicate<TynamoPropertyDescriptor> assignedId = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor descriptor)
{
return descriptor.isIdentifier() && descriptor.isString() && !((IdentifierDescriptor) descriptor).isGenerated();
}
};
public static final Predicate<TynamoPropertyDescriptor> enumi = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.supportsExtension(EnumReferenceDescriptor.class);
}
};
public static final Predicate<TynamoPropertyDescriptor> blob = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.supportsExtension(BlobDescriptorExtension.class);
}
};
public static final Predicate<TynamoPropertyDescriptor> manyToOne = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isObjectReference();
}
};
public static final Predicate<TynamoPropertyDescriptor> manyToMany = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor descriptor)
{
return descriptor.isCollection() && !((CollectionDescriptor) descriptor).isChildRelationship();
}
};
public static final Predicate<TynamoPropertyDescriptor> composition = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor descriptor)
{
return descriptor.isCollection() && ((CollectionDescriptor) descriptor).isChildRelationship();
}
};
public static final Predicate<TynamoPropertyDescriptor> embedded = new Predicate<TynamoPropertyDescriptor>()
{
public boolean accept(TynamoPropertyDescriptor tynamoPropertyDescriptor)
{
return tynamoPropertyDescriptor.isEmbedded();
}
};
}