| // Copyright 2010-2013 The Apache Software Foundation |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package org.apache.tapestry5; |
| |
| /** |
| * Identifies how a {@link Link} should handle security. |
| * |
| * @since 5.2.2 |
| */ |
| public enum LinkSecurity |
| { |
| /** The request was insecure, but the targeted page was secure, so the URI should be absolute and secure. */ |
| FORCE_SECURE, |
| |
| /** The request was was secure but the targeted page is not, so the URI should be absolute and insecure. */ |
| FORCE_INSECURE, |
| |
| /** |
| * The request is insecure, which matches the targeted page security, so there's no explicit need for an absolute |
| * URI. |
| */ |
| INSECURE, |
| |
| /** |
| * The request is secure, which matches the targeted page security, so there's no explicit need for an absolute |
| * URI. |
| */ |
| SECURE; |
| |
| /** Promotes to either {@link #FORCE_SECURE} or {@link #FORCE_INSECURE}. */ |
| public LinkSecurity promote() |
| { |
| switch (this) |
| { |
| case SECURE: |
| case FORCE_SECURE: |
| return FORCE_SECURE; |
| |
| default: |
| return FORCE_INSECURE; |
| } |
| } |
| |
| /** Does this value indicate forcing an absolute URI (one that includes scheme and hostname)? */ |
| public boolean isAbsolute() |
| { |
| return this == FORCE_SECURE || this == FORCE_INSECURE; |
| } |
| } |