/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.module.extension.internal.config.dsl.parameter;
import static org.mule.runtime.api.util.Preconditions.checkArgument;
import static org.mule.runtime.dsl.api.component.ComponentBuildingDefinition.Builder;
import org.mule.runtime.api.meta.model.parameter.ParameterGroupModel;
import org.mule.runtime.extension.api.dsl.syntax.DslElementSyntax;
import org.mule.runtime.extension.api.dsl.syntax.resolver.DslSyntaxResolver;
import org.mule.runtime.module.extension.internal.config.dsl.ExtensionDefinitionParser;
import org.mule.runtime.module.extension.internal.config.dsl.ExtensionParsingContext;
import org.mule.runtime.module.extension.internal.runtime.resolver.ValueResolver;
/**
* A {@link ExtensionDefinitionParser} for parsing extension objects that are expressed as an inline {@link ParameterGroupModel}
* <p>
* These objects are parsed as {@link ValueResolver}s which are later resolved by a {@link TopLevelParameterObjectFactory}
* instance
*
* @since 4.0
*/
public abstract class ParameterGroupParser extends ExtensionDefinitionParser {
protected final ParameterGroupModel group;
protected final ClassLoader classLoader;
protected final DslElementSyntax groupDsl;
protected final String name;
protected final String namespace;
public ParameterGroupParser(Builder definition, ParameterGroupModel group, ClassLoader classLoader, DslElementSyntax groupDsl,
DslSyntaxResolver dslResolver, ExtensionParsingContext context) {
super(definition, dslResolver, context);
checkArgument(group.isShowInDsl(), "Cannot parse an implicit group");
this.group = group;
this.classLoader = classLoader;
this.groupDsl = groupDsl;
this.name = groupDsl.getElementName();
this.namespace = groupDsl.getPrefix();
}
}