001/*
002 * PermissionsEx
003 * Copyright (C) zml and PermissionsEx contributors
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *    http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package ca.stellardrift.permissionsex.subject;
018
019/**
020 * An exception thrown when an identifier is provided that isn't valid for a subject type.
021 *
022 * @since 2.0.0
023 */
024public final class InvalidIdentifierException extends IllegalArgumentException {
025    private static final long serialVersionUID = 300758874983936090L;
026
027    private final String unparsedIdentifier;
028
029    public InvalidIdentifierException(final String unparsedIdentifier) {
030        super("Invalid subject identifier: " + unparsedIdentifier);
031
032        this.unparsedIdentifier = unparsedIdentifier;
033    }
034
035    /**
036     * Get the provided input that was supposed to be parsed.
037     *
038     * @return the original input
039     * @since 2.0.0
040     */
041    public String unparsedIdentifier() {
042        return this.unparsedIdentifier;
043    }
044}