joo.classLoader.prepare(/*
 * Copyright 2008 CoreMedia AG
 * 
 * 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 package1", [""],

"public class TestUnqualifiedAccess",function(TestUnqualifiedAccess,$$private){with(TestUnqualifiedAccess)with($$private)return[ 

  "public function TestUnqualifiedAccess",function $TestUnqualifiedAccess(value/* :String*/) {this[$super]();
    this[$privateSlot] = this.protectedSlot = this.publicSlot = value;
  },

  "private var",{ privateSlot/* :String*/: undefined},
  "protected var",{ protectedSlot/* :String*/: undefined},
  "public var",{ publicSlot/* :String*/: undefined},

  "public function setPrivateSlot",function setPrivateSlot(value/* :String*/)/* :void*/ {
    this[$privateSlot] = value;
  },

  "public function getPrivateSlot",function getPrivateSlot()/* :String*/ {
    return this[$privateSlot];
  },

  "public function setProtectedSlot",function setProtectedSlot(value/* :String*/)/* :void*/ {
    this.protectedSlot = value;
  },

  "public function getProtectedSlot",function getProtectedSlot()/* :String*/ {
    return this.protectedSlot;
  },

  "public function setPublicSlot",function setPublicSlot(value/* :String*/)/* :void*/ {
    this.publicSlot = value;
  },

  "public function getPublicSlot",function getPublicSlot()/* :String*/ {
    return this.publicSlot;
  },

  "public function testConstructorAccess",function testConstructorAccess()/* : Boolean*/ {
    return this.constructor === TestUnqualifiedAccess;
  },

  // a local function must be found, or it will be assumed to be a member:
  "public function testLocalFunction",function testLocalFunction()/* : Boolean*/ {
    function localFunction()/* : Boolean*/ {
      return true;
    };
    return localFunction();
  },

  "public function testForwardPrivateUnqualified",function testForwardPrivateUnqualified(p/* : **/)/* : void*/ {
    return this[$forwardPrivate](p);
  },

  "private function forwardPrivate",function forwardPrivate(p/* : **/)/* : void*/ {
    return p;
  },

  "public static const",{ UNQUALIFIED_CLASS_EQUALS_QUALIFIED_CLASS/* : Boolean*/ :function(){return( TestUnqualifiedAccess === package1.TestUnqualifiedAccess);}},
  "public static var",{ SET_BY_STATIC_INITIALIZER/* : String*/: undefined},function()

{
  var test/* : String*/ = "o";
  SET_BY_STATIC_INITIALIZER = "f" + test + test;
},
];},[]
);