/*
* Copyright (c) 2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement(name = "smb_share")
public class SMBFileShare extends AbstractSerializableNestedObject {
private static final String NAME = "name";
private static final String MOUNTPOINT = "mountPoint";
private static final String DESCRIPTION = "description";
private static final String PERMISSION_TYPE = "permissionType";
private static final String PERMISSION = "permission";
private static final String MAX_USERS = "maxUsers";
private static final String NATIVE_ID = "nativeId";
private static final String PORT_GROUP = "portGroup";
private static final String PATH = "path";
private static final String IS_SUBDIR = "isSubDir";
private static final String STORAGE_PORT_NAME = "storagePortName";
private static final String STORAGE_PORT_NETWORK_ID = "storagePortNetworkId";
private static final String NETBIOS_NAME = "netbiosName";
/**
* JAXB requirement
*/
public SMBFileShare() {
}
public SMBFileShare(String name, String description, String permissionType, String permission, int maxUsers,
String mountPoint) {
setName(name);
setDescription(description);
setPermissionType(permissionType);
setPermission(permission);
setMaxUsers(maxUsers);
setMountPoint(mountPoint);
}
public SMBFileShare(String name, String description, String permissionType, String permission, int maxUsers) {
setName(name);
setDescription(description);
setPermissionType(permissionType);
setPermission(permission);
setMaxUsers(maxUsers);
}
@XmlElement
public String getName() {
return getStringField(NAME);
}
public void setName(String name) {
if (name == null) {
name = "";
}
setField(NAME, name);
}
@XmlElement
public String getDescription() {
return getStringField(DESCRIPTION);
}
public void setDescription(String description) {
if (description == null) {
description = "";
}
setField(DESCRIPTION, description);
}
@XmlElement(name = "permission_type")
public String getPermissionType() {
return getStringField(PERMISSION_TYPE);
}
public void setPermissionType(String permissionType) {
if (permissionType == null) {
permissionType = "";
}
setField(PERMISSION_TYPE, permissionType);
}
@XmlElement(name = "permission")
public String getPermission() {
return getStringField(PERMISSION);
}
public void setPermission(String permission) {
if (permission == null) {
permission = "";
}
setField(PERMISSION, permission);
}
// @XmlElement(name = "max_users")
@XmlTransient
public int getMaxUsers() {
return getIntField(MAX_USERS);
}
public void setMaxUsers(int maxUsers) {
setField(MAX_USERS, maxUsers);
}
@XmlElement
public String getMountPoint() {
return getStringField(MOUNTPOINT);
}
// Mount Point For VNX,VNXe,NetApp7,NetAppCluster Mode
public void setMountPoint(String netbiosName, String storagePortNetworkId, String storagePortNetworkName, String shareName) {
String portName = null;
if (netbiosName != null && !netbiosName.isEmpty()) {
portName = netbiosName.trim();
} else {
if (storagePortNetworkId != null && !storagePortNetworkId.isEmpty()) {
portName = storagePortNetworkId;
} else {
if (storagePortNetworkName != null && !storagePortNetworkName.isEmpty()) {
portName = storagePortNetworkName;
}
}
}
String mountPoint = (portName != null) ? "\\\\" + portName + "\\" + shareName : null;
setField(MOUNTPOINT, mountPoint);
}
// Mount Point for Isilon and Data Domain
public void setMountPoint(String storagePortNetworkId, String storagePortNetworkName, String shareName) {
String portName = null;
if (storagePortNetworkId != null && !storagePortNetworkId.isEmpty()) {
portName = storagePortNetworkId;
} else {
if (storagePortNetworkName != null && !storagePortNetworkName.isEmpty()) {
portName = storagePortNetworkName;
}
}
String mountPoint = (portName != null) ? "\\\\" + portName + "\\" + shareName : null;
setField(MOUNTPOINT, mountPoint);
}
// Mount Point for UnManaged FS SMB shares
public void setMountPoint(String mountPoint) {
if (mountPoint == null) {
mountPoint = "";
}
setField(MOUNTPOINT, mountPoint);
}
@XmlElement(name = "native_id")
public String getNativeId() {
return getStringField(NATIVE_ID);
}
public void setNativeId(String nativeId) {
if (nativeId == null) {
nativeId = "";
}
setField(NATIVE_ID, nativeId);
}
@XmlElement
public String getPortGroup() {
return getStringField(PORT_GROUP);
}
public void setPortGroup(String portGroup) {
if (portGroup == null) {
portGroup = "";
}
setField(PORT_GROUP, portGroup);
}
@XmlElement
public String getPath() {
return getStringField(PATH);
}
public void setPath(String path) {
if (path == null) {
path = "";
}
setField(PATH, path);
}
@XmlElement
public String isSubdir() {
return getStringField(IS_SUBDIR);
}
public void setSubDir(boolean isSubDir) {
setField(IS_SUBDIR, isSubDir);
}
@XmlElement
public String getStoragePortName() {
return getStringField(STORAGE_PORT_NAME);
}
public void setStoragePortName(String storagePortName) {
if (storagePortName == null) {
storagePortName = "";
}
setField(STORAGE_PORT_NAME, storagePortName);
}
@XmlElement
public String getStoragePortNetworkId() {
return getStringField(STORAGE_PORT_NETWORK_ID);
}
public void setStoragePortNetworkId(String storagePortNetworkId) {
if (storagePortNetworkId == null) {
storagePortNetworkId = "";
}
setField(STORAGE_PORT_NETWORK_ID, storagePortNetworkId);
}
@XmlElement
public String getNetBIOSName() {
return getStringField(NETBIOS_NAME);
}
public void setNetBIOSName(String netbiosName) {
if (netbiosName == null) {
netbiosName = "";
}
setField(NETBIOS_NAME, netbiosName);
}
}