/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.domains; import static com.mysema.query.types.PathMetadataFactory.forVariable; import java.util.HashSet; import java.util.Set; import com.mysema.query.types.PathMetadata; import com.mysema.query.types.path.EntityPathBase; import com.mysema.query.types.path.PathInits; import com.mysema.query.types.path.SetPath; import com.mysema.query.types.path.StringPath; import com.mysema.rdfbean.annotations.ClassMapping; import com.mysema.rdfbean.annotations.Id; import com.mysema.rdfbean.annotations.Predicate; import com.mysema.rdfbean.model.IDType; public interface UserProfileDomain { @ClassMapping public abstract class Identifiable { private static final long serialVersionUID = 4580448045434144592L; @Id(IDType.LOCAL) public String id; public String getId() { return id; } @Override public String toString() { return id; } } @ClassMapping public class User extends Identifiable { @Predicate public String firstName, lastName, email; @Predicate public String username; @Predicate public String password; @Predicate public Profile profile; @Predicate private final Set<User> buddies = new HashSet<User>(); public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public String getPassword() { return password; } public String getUsername() { return username; } public String getEmail() { return email; } public Profile getProfile() { return profile; } public Set<User> getBuddies() { return buddies; } public boolean isActive() { return true; } } @ClassMapping public enum Profile { User, Admin } public class QIdentifiable extends EntityPathBase<UserProfileDomain.Identifiable> { private static final long serialVersionUID = -1841937934; public static final QIdentifiable identifiable = new QIdentifiable("identifiable"); public final StringPath id = createString("id"); public QIdentifiable(String variable) { super(UserProfileDomain.Identifiable.class, forVariable(variable)); } public QIdentifiable(EntityPathBase<? extends UserProfileDomain.Identifiable> entity) { super(entity.getType(), entity.getMetadata()); } public QIdentifiable(PathMetadata<?> metadata) { super(UserProfileDomain.Identifiable.class, metadata); } } public class QProfile extends EntityPathBase<UserProfileDomain.Profile> { private static final long serialVersionUID = 1043504269; public static final QProfile profile = new QProfile("profile"); public QProfile(String variable) { super(UserProfileDomain.Profile.class, forVariable(variable)); } public QProfile(EntityPathBase<? extends UserProfileDomain.Profile> entity) { super(entity.getType(), entity.getMetadata()); } public QProfile(PathMetadata<?> metadata) { super(UserProfileDomain.Profile.class, metadata); } } public class QUser extends EntityPathBase<UserProfileDomain.User> { private static final long serialVersionUID = -1810734233; private static final PathInits INITS = PathInits.DIRECT; public static final QUser user = new QUser("user"); public final QIdentifiable _super = new QIdentifiable(this); public final SetPath<UserProfileDomain.User, QUser> buddies = this.<User, QUser> createSet("buddies", UserProfileDomain.User.class, QUser.class, PathInits.DEFAULT); public final StringPath email = createString("email"); public final StringPath firstName = createString("firstName"); // inherited public final StringPath id = _super.id; public final StringPath lastName = createString("lastName"); public final StringPath password = createString("password"); public final QProfile profile; public final StringPath username = createString("username"); public QUser(String variable) { this(UserProfileDomain.User.class, forVariable(variable), INITS); } public QUser(PathMetadata<?> metadata) { this(metadata, metadata.isRoot() ? INITS : PathInits.DEFAULT); } public QUser(PathMetadata<?> metadata, PathInits inits) { this(UserProfileDomain.User.class, metadata, inits); } public QUser(Class<? extends UserProfileDomain.User> type, PathMetadata<?> metadata, PathInits inits) { super(type, metadata, inits); this.profile = inits.isInitialized("profile") ? new QProfile(forProperty("profile")) : null; } } }