Package org.exist.util

Examples of org.exist.util.SyntaxException


        return String.valueOf(ch);
    }

    public static UnixStylePermissionAider fromString(final String modeStr) throws SyntaxException {
        if(modeStr == null || !(modeStr.length() == 9 || modeStr.length() == 12)){
            throw new SyntaxException("Invalid Permission String '" + modeStr + "'");
        }

        int mode = 0;
        for(int i = 0; i < modeStr.length(); i=i+3) {
            for(final char c : modeStr.substring(i, i + 3).toCharArray()) {
                switch(c) {
                    case READ_CHAR:
                        mode |= (READ << (6 - i));
                        break;
                    case WRITE_CHAR:
                        mode |= (WRITE << (6 - i));
                        break;
                    case EXECUTE_CHAR:
                        mode |= (EXECUTE << (6 - i));
                        break;
                    case SETUID_CHAR | SETGID_CHAR:
                        if(i == 0) {
                            mode |= (SET_UID << 9);
                        } else if(i == 3) {
                            mode |= (SET_GID << 9);
                        }
                        mode |= (EXECUTE << (6 - i));
                        break;
                    case SETUID_CHAR_NO_EXEC | SETGID_CHAR_NO_EXEC:
                        if(i == 0) {
                            mode |= (SET_UID << 9);
                        } else if(i == 3) {
                            mode |= (SET_GID << 9);
                        }
                        break;
                    case STICKY_CHAR:
                        mode |= (STICKY << 9);
                        mode |= (EXECUTE << (6 - i));
                        break;
                    case STICKY_CHAR_NO_EXEC:
                        mode |= (STICKY << 9);
                        break;
                    case UNSET_CHAR:
                        break;
                    default:
                        throw new SyntaxException("Unknown char '" + c + "' in mode string '" + modeStr + "'");
                }
            }
        }
        return new UnixStylePermissionAider(mode);
    }
View Full Code Here


                    case STICKY_CHAR:
                        sticky = true;
                        break;

                    default:
                        throw new SyntaxException("Unrecognised mode char '" + c + "'");
                }
            }

           
            final char whoose[];
            if(whoPerm[0].length() > 0) {
                whoose = whoPerm[0].toCharArray();
            } else {
                whoose = new char[]{ ALL_CHAR };
            }
           
            for(final char c: whoose) {
                switch(c) {
                    case ALL_CHAR:
                        final int newMode = (perm << 6) | (perm << 3) | perm | (sticky ? (STICKY << 9) : 0) | (uidgid ? ((SET_UID | SET_GID) << 9) : 0);
                        if(clause.indexOf("+") > -1) {
                            setMode(getMode() | newMode);
                        } else if(clause.indexOf("-") > -1) {
                            setMode(getMode() & ~newMode);
                        } else if(clause.indexOf("=") > -1) {
                            setMode(newMode);
                        }
                        break;

                    case USER_CHAR:
                        if(clause.indexOf("+") > -1) {
                            setOwnerMode(getOwnerMode() | perm);
                            if(uidgid) {
                                setSetUid(true);
                            }
                        } else if(clause.indexOf("-") > -1) {
                            setOwnerMode(getOwnerMode() & ~perm);
                            if(uidgid) {
                                setSetUid(false);
                            }
                        } else if(clause.indexOf("=") > -1) {
                            setOwnerMode(perm);
                            if(uidgid) {
                                setSetUid(true);
                            }
                        }
                        break;

                    case GROUP_CHAR:
                        if(clause.indexOf("+") > -1) {
                            setGroupMode(getGroupMode() | perm);
                            if(uidgid) {
                                setSetGid(true);
                            }
                        } else if(clause.indexOf("-") > -1) {
                            setGroupMode(getGroupMode() & ~perm);
                            if(uidgid) {
                                setSetGid(false);
                            }
                        } else if(clause.indexOf("=") > -1) {
                            setGroupMode(perm);
                            if(uidgid) {
                                setSetGid(true);
                            }
                        }
                        break;

                    case OTHER_CHAR:
                        if(clause.indexOf("+") > -1) {
                            setOtherMode(getOtherMode() | perm);
                            if(sticky) {
                                setSticky(true);
                            }
                        } else if(clause.indexOf("-") > -1) {
                            setOtherMode(getOtherMode() & ~perm);
                            if(sticky) {
                                setSticky(false);
                            }
                        } else if(clause.indexOf("=") > -1) {
                            setOtherMode(perm);
                            if(sticky) {
                                setSticky(true);
                            }
                        }
                        break;

                    default:
                        throw new SyntaxException("Unrecognised mode char '" + c + "'");
                }
            }

            perm = 0;
            uidgid = false;
View Full Code Here

                } else if(s.endsWith(WRITE_STRING.toLowerCase())) {
                    perm = WRITE;
                } else if(s.endsWith(EXECUTE_STRING.toLowerCase())) {
                    perm = EXECUTE;
                } else {
                    throw new SyntaxException("Unrecognised mode char '" + s + "'");
                }

                if(s.startsWith("+")) {
                    mode |= (perm << shift);
                } else if(s.startsWith("-")) {
                    mode &= (~(perm << shift));
                } else {
                    throw new SyntaxException("Unrecognised mode char '" + s + "'");
                }
            }
        }
        setMode(mode);
    }
View Full Code Here

            } else {
                existSymbolicModeMatcher.reset(modeStr);
                if(existSymbolicModeMatcher.matches()) {
                    setExistSymbolicMode(modeStr);
                } else {
                    throw new SyntaxException("Unknown mode String: " + modeStr);
                }
            }
        }
    }
View Full Code Here

                case UNSET_CHAR:
                    break;

                default:
                    throw new SyntaxException("Unrecognised mode char '" + c + "'");
            }
        }
       
        return mode;
    }
View Full Code Here

TOP

Related Classes of org.exist.util.SyntaxException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.