/* | |
* Copyright 2010 Google Inc. | |
* | |
* 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. | |
*/ | |
// Maps property names onto sets of legal values for that property. | |
var values = []; | |
// Maps property names onto a function to compute that property. | |
var providers = []; | |
// Computes the value of a given property. propName must be a valid property | |
// name. Used by the generated PERMUTATIONS code. | |
function computePropValue(propName) { | |
var value = providers[propName](), allowedValuesMap = values[propName]; | |
if (value in allowedValuesMap) { | |
return value; | |
} | |
var allowedValuesList = []; | |
for (var k in allowedValuesMap) { | |
allowedValuesList[allowedValuesMap[k]] = k; | |
} | |
if (__propertyErrorFunc) { | |
__propertyErrorFunc(propName, allowedValuesList, value); | |
} | |
throw null; | |
} | |
// __PROPERTIES_BEGIN__ | |
// Properties logic is injected here. This code populates the values and | |
// providers variables | |
// __PROPERTIES_END__ | |
// Determines whether or not a particular property value is allowed. Called by | |
// property providers. | |
__gwt_isKnownPropertyValue = function(propName, propValue) { | |
return propValue in values[propName]; | |
} | |
__MODULE_FUNC__.__computePropValue = computePropValue; |