/*******************************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 *******************************************************************************/

contribute(currentType(subType('groovy.lang.Script'))) {
    property name : 'parameters', type : 'java.util.Map'
	property name: 'context', type: 'java.util.Map'
	property name: 'delegator', type: 'org.apache.ofbiz.entity.Delegator'
	property name: 'dispatcher', type: 'org.apache.ofbiz.service.LocalDispatcher'

	method name: 'runService', type: 'java.util.Map', params: [serviceName: 'String', inputMap: 'java.util.Map']
	method name: 'makeValue', type: 'java.util.Map', params: [entityName: 'String']
	method name: 'findOne', type: 'java.util.Map', params: [entityName: 'String', inputMap: 'java.util.Map']
	method name: 'findList', type: 'java.util.List', params: [entityName: 'String', inputMap: 'java.util.Map']
	method name: 'select', type: 'org.apache.ofbiz.entity.util.EntityQuery', params: [entity: 'java.util.Set']
	method name: 'select', type: 'org.apache.ofbiz.entity.util.EntityQuery', params: [entity: 'String...']
	method name: 'from', type: 'org.apache.ofbiz.entity.util.EntityQuery', params: [entity: 'java.lang.Object']
	method name: 'success', type: 'def', params: [message: 'String']
	method name: 'failure', type: 'java.util.Map', params: [message: 'String']
	method name: 'error', type: 'def', params: [message: 'String']
	method name: 'logInfo', type: 'void', params: [message: 'String']
	method name: 'logWarning', type: 'void', params: [message: 'String']
	method name: 'logError', type: 'void', params: [message: 'String']
}
