/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.shiro.file.model;
/**
*
* @author jbuhacoff
*/
public class UserPermission {
private String domain;
private String action;
private String instance;
public UserPermission(String domain, String action, String instance) {
this.domain = domain;
this.action = action;
this.instance = instance;
}
@Override
public String toString() {
if( action == null && instance == null ) {
return domain;
}
if( instance == null ) {
return String.format("%s:%s", domain, action);
}
return String.format("%s:%s:%s", domain, action, instance);
}
public static UserPermission parse(String text) {
String[] parts = text.split(":");
if( parts.length == 3 ) {
return new UserPermission(parts[0], parts[1], parts[2]);
}
if( parts.length == 2 ) {
return new UserPermission(parts[0], parts[1], null);
}
if( parts.length == 1 ) {
return new UserPermission(parts[0], null, null);
}
throw new IllegalArgumentException("Invalid permission format"); // must be in the form domain:action:instance or domain:action or domain
}
}