AppletConfiguration.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *     http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */

  17. package org.apache.commons.configuration2.web;

  18. import java.applet.Applet;
  19. import java.util.Arrays;
  20. import java.util.Iterator;
  21. import java.util.Objects;

  22. /**
  23.  * A configuration wrapper to read applet parameters. This configuration is read only, adding or removing a property
  24.  * will throw an UnsupportedOperationException.
  25.  *
  26.  * @since 1.1
  27.  */
  28. public class AppletConfiguration extends BaseWebConfiguration {

  29.     /** Stores the wrapped applet. */
  30.     protected Applet applet;

  31.     /**
  32.      * Create an AppletConfiguration using the initialization parameters of the specified Applet.
  33.      *
  34.      * @param applet the applet
  35.      */
  36.     public AppletConfiguration(final Applet applet) {
  37.         this.applet = Objects.requireNonNull(applet, "applet");
  38.     }

  39.     @Override
  40.     protected Iterator<String> getKeysInternal() {
  41.         final String[][] paramsInfo = applet.getParameterInfo();
  42.         final String[] keys = new String[paramsInfo != null ? paramsInfo.length : 0];
  43.         if (paramsInfo != null) {
  44.             for (int i = 0; i < keys.length; i++) {
  45.                 keys[i] = paramsInfo[i][0];
  46.             }
  47.         }
  48.         return Arrays.asList(keys).iterator();
  49.     }

  50.     @Override
  51.     protected Object getPropertyInternal(final String key) {
  52.         return handleDelimiters(applet.getParameter(key));
  53.     }
  54. }