/*
* Copyright 2013-2014 Richard M. Hightower
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* __________ _____ __ .__
* \______ \ ____ ____ ____ /\ / \ _____ | | _|__| ____ ____
* | | _// _ \ / _ \ / \ \/ / \ / \\__ \ | |/ / |/ \ / ___\
* | | ( <_> | <_> ) | \ /\ / Y \/ __ \| <| | | \/ /_/ >
* |______ /\____/ \____/|___| / \/ \____|__ (____ /__|_ \__|___| /\___ /
* \/ \/ \/ \/ \/ \//_____/
* ____. ___________ _____ ______________.___.
* | |____ ___ _______ \_ _____/ / _ \ / _____/\__ | |
* | \__ \\ \/ /\__ \ | __)_ / /_\ \ \_____ \ / | |
* /\__| |/ __ \\ / / __ \_ | \/ | \/ \ \____ |
* \________(____ /\_/ (____ / /_______ /\____|__ /_______ / / ______|
* \/ \/ \/ \/ \/ \/
*/
package com.examples.security.model;
import org.boon.Boon;
import org.boon.Str;
public class User extends Subject {
public static final Class<User> user = User.class;
public static User user( String email ) {
return new User( email );
}
public static User[] users( User... users ) {
return users;
}
private final String email;
//For serialization only
public User() {
this.email = null;
}
private User( final String email ) {
super( "Watcher:" + generateSubjectNameFromEmail( email ) );
this.email = email;
}
public static String generateSubjectNameFromEmail( final String email ) {
String name = null;
if ( email.endsWith( ".com" ) ) {
name = "company:" + Str.slc( email, 0, -4 );
} else if ( email.endsWith( ".org" ) ) {
name = "organization:" + Str.slc( email, 0, -4 );
} else {
name = "country:" + Str.slc( email, -2 ) + ":" + Str.slcEnd( email, -2 );
}
name = name.replace( '.', '_' ).replace( '@', '-' );
return name;
}
public static void main( String... args ) {
String email = "richardhightower@gmail.com";
//Boon.uts( email, generateSubjectNameFromEmail( email ) );
String email2 = "marcomilk@gmail.com.br";
//Boon.uts( email2, generateSubjectNameFromEmail( email2 ) );
}
public String getEmail() {
return email;
}
@Override
public String toString() {
return "Watcher{" +
"email='" + email + '\'' +
'}';
}
}