@Override @InterfaceStability.Unstable public String toString() { // This currently just delegates to the stable string representation, but it // is permissible for the output of this method to change across versions. return toStringStable(); }
private static void write(List<AclEntry> aclEntries, DataOutputStream out) throws IOException { if (aclEntries == null) { out.writeInt(0); return; } out.writeInt(aclEntries.size()); for (AclEntry e : aclEntries) { boolean hasName = e.getName() != null; int v = (e.getScope().ordinal() << ACL_EDITLOG_ENTRY_SCOPE_OFFSET) | (e.getType().ordinal() << ACL_EDITLOG_ENTRY_TYPE_OFFSET) | e.getPermission().ordinal(); if (hasName) { v |= 1 << ACL_EDITLOG_ENTRY_HAS_NAME_OFFSET; } out.write(v); if (hasName) { FSImageSerialization.writeString(e.getName(), out); } } } }
private static void appendAclEntriesToXml(ContentHandler contentHandler, List<AclEntry> aclEntries) throws SAXException { for (AclEntry e : aclEntries) { contentHandler.startElement("", "", "ENTRY", new AttributesImpl()); XMLUtils.addSaxString(contentHandler, "SCOPE", e.getScope().name()); XMLUtils.addSaxString(contentHandler, "TYPE", e.getType().name()); if (e.getName() != null) { XMLUtils.addSaxString(contentHandler, "NAME", e.getName()); } fsActionToXml(contentHandler, e.getPermission()); contentHandler.endElement("", "", "ENTRY"); } }
private static List<AclEntry> readAclEntriesFromXml(Stanza st) { List<AclEntry> aclEntries = Lists.newArrayList(); if (!st.hasChildren("ENTRY")) return null; List<Stanza> stanzas = st.getChildren("ENTRY"); for (Stanza s : stanzas) { AclEntry e = new AclEntry.Builder() .setScope(AclEntryScope.valueOf(s.getValue("SCOPE"))) .setType(AclEntryType.valueOf(s.getValue("TYPE"))) .setName(s.getValueOrNull("NAME")) .setPermission(fsActionFromXml(s)).build(); aclEntries.add(e); } return aclEntries; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); if (scope == AclEntryScope.DEFAULT) { sb.append("default:"); } if (type != null) { sb.append(StringUtils.toLowerCase(type.toString())); } sb.append(':'); if (name != null) { sb.append(name); } sb.append(':'); if (permission != null) { sb.append(permission.SYMBOL); } return sb.toString(); }
static AclEntryType getType(int aclEntry) { int ordinal = (int) TYPE.BITS.retrieve(aclEntry); return AclEntryType.values()[ordinal]; }
static int toInt(AclEntry aclEntry) { long aclEntryInt = 0; aclEntryInt = SCOPE.BITS .combine(aclEntry.getScope().ordinal(), aclEntryInt); aclEntryInt = TYPE.BITS.combine(aclEntry.getType().ordinal(), aclEntryInt); aclEntryInt = PERMISSION.BITS.combine(aclEntry.getPermission().ordinal(), aclEntryInt); SerialNumberManager snm = getSerialNumberManager(aclEntry.getType()); if (snm != null) { int nid = snm.getSerialNumber(aclEntry.getName()); aclEntryInt = NAME.BITS.combine(nid, aclEntryInt); } return (int) aclEntryInt; }
private static void appendAclEntriesToXml(ContentHandler contentHandler, List<AclEntry> aclEntries) throws SAXException { for (AclEntry e : aclEntries) { contentHandler.startElement("", "", "ENTRY", new AttributesImpl()); XMLUtils.addSaxString(contentHandler, "SCOPE", e.getScope().name()); XMLUtils.addSaxString(contentHandler, "TYPE", e.getType().name()); if (e.getName() != null) { XMLUtils.addSaxString(contentHandler, "NAME", e.getName()); } fsActionToXml(contentHandler, e.getPermission()); contentHandler.endElement("", "", "ENTRY"); } }
private static List<AclEntry> readAclEntriesFromXml(Stanza st) { List<AclEntry> aclEntries = Lists.newArrayList(); if (!st.hasChildren("ENTRY")) return null; List<Stanza> stanzas = st.getChildren("ENTRY"); for (Stanza s : stanzas) { AclEntry e = new AclEntry.Builder() .setScope(AclEntryScope.valueOf(s.getValue("SCOPE"))) .setType(AclEntryType.valueOf(s.getValue("TYPE"))) .setName(s.getValueOrNull("NAME")) .setPermission(fsActionFromXml(s)).build(); aclEntries.add(e); } return aclEntries; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); if (scope == AclEntryScope.DEFAULT) { sb.append("default:"); } if (type != null) { sb.append(StringUtils.toLowerCase(type.toString())); } sb.append(':'); if (name != null) { sb.append(name); } sb.append(':'); if (permission != null) { sb.append(permission.SYMBOL); } return sb.toString(); }
static AclEntryType getType(int aclEntry) { int ordinal = (int) TYPE.BITS.retrieve(aclEntry); return AclEntryType.values()[ordinal]; }
private INodeSection.AclFeatureProto.Builder aclXmlToProto(Node acls) throws IOException { AclFeatureProto.Builder b = AclFeatureProto.newBuilder(); while (true) { Node acl = acls.removeChild(INODE_SECTION_ACL); if (acl == null) { break; } String val = acl.getVal(); AclEntry entry = AclEntry.parseAclEntry(val, true); int nameId = registerStringId(entry.getName() == null ? EMPTY_STRING : entry.getName()); int v = ((nameId & ACL_ENTRY_NAME_MASK) << ACL_ENTRY_NAME_OFFSET) | (entry.getType().ordinal() << ACL_ENTRY_TYPE_OFFSET) | (entry.getScope().ordinal() << ACL_ENTRY_SCOPE_OFFSET) | (entry.getPermission().ordinal()); b.addEntries(v); } return b; }
private static void appendAclEntriesToXml(ContentHandler contentHandler, List<AclEntry> aclEntries) throws SAXException { for (AclEntry e : aclEntries) { contentHandler.startElement("", "", "ENTRY", new AttributesImpl()); XMLUtils.addSaxString(contentHandler, "SCOPE", e.getScope().name()); XMLUtils.addSaxString(contentHandler, "TYPE", e.getType().name()); if (e.getName() != null) { XMLUtils.addSaxString(contentHandler, "NAME", e.getName()); } fsActionToXml(contentHandler, e.getPermission()); contentHandler.endElement("", "", "ENTRY"); } }
private static List<AclEntry> readAclEntriesFromXml(Stanza st) { List<AclEntry> aclEntries = Lists.newArrayList(); if (!st.hasChildren("ENTRY")) return null; List<Stanza> stanzas = st.getChildren("ENTRY"); for (Stanza s : stanzas) { AclEntry e = new AclEntry.Builder() .setScope(AclEntryScope.valueOf(s.getValue("SCOPE"))) .setType(AclEntryType.valueOf(s.getValue("TYPE"))) .setName(s.getValueOrNull("NAME")) .setPermission(fsActionFromXml(s)).build(); aclEntries.add(e); } return aclEntries; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); if (scope == AclEntryScope.DEFAULT) { sb.append("default:"); } if (type != null) { sb.append(StringUtils.toLowerCase(type.toString())); } sb.append(':'); if (name != null) { sb.append(name); } sb.append(':'); if (permission != null) { sb.append(permission.SYMBOL); } return sb.toString(); }
/** * Returns a string representation guaranteed to be stable across versions to * satisfy backward compatibility requirements, such as for shell command * output or serialization. The format of this string representation matches * what is expected by the {@link #parseAclSpec(String, boolean)} and * {@link #parseAclEntry(String, boolean)} methods. * * @return stable, backward compatible string representation */ public String toStringStable() { StringBuilder sb = new StringBuilder(); if (scope == AclEntryScope.DEFAULT) { sb.append("default:"); } if (type != null) { sb.append(StringUtils.toLowerCase(type.toStringStable())); } sb.append(':'); if (name != null) { sb.append(name); } sb.append(':'); if (permission != null) { sb.append(permission.SYMBOL); } return sb.toString(); }
private static AclEntryTypeProto convert(AclEntryType e) { return AclEntryTypeProto.valueOf(e.ordinal()); }
@Override @InterfaceStability.Unstable public String toString() { // This currently just delegates to the stable string representation, but it // is permissible for the output of this method to change across versions. return toStringStable(); }
private static AclEntryTypeProto convert(AclEntryType e) { return AclEntryTypeProto.valueOf(e.ordinal()); }
/** * Returns a string representation guaranteed to be stable across versions to * satisfy backward compatibility requirements, such as for shell command * output or serialization. The format of this string representation matches * what is expected by the {@link #parseAclSpec(String, boolean)} and * {@link #parseAclEntry(String, boolean)} methods. * * @return stable, backward compatible string representation */ public String toStringStable() { StringBuilder sb = new StringBuilder(); if (scope == AclEntryScope.DEFAULT) { sb.append("default:"); } if (type != null) { sb.append(StringUtils.toLowerCase(type.toStringStable())); } sb.append(':'); if (name != null) { sb.append(name); } sb.append(':'); if (permission != null) { sb.append(permission.SYMBOL); } return sb.toString(); }