001/** 002 * Logback: the reliable, generic, fast and flexible logging framework. 003 * Copyright (C) 1999-2015, QOS.ch. All rights reserved. 004 * 005 * This program and the accompanying materials are dual-licensed under 006 * either the terms of the Eclipse Public License v1.0 as published by 007 * the Eclipse Foundation 008 * 009 * or (per the licensee's choosing) 010 * 011 * under the terms of the GNU Lesser General Public License version 2.1 012 * as published by the Free Software Foundation. 013 */ 014package ch.qos.logback.core.joran.action; 015 016import org.xml.sax.Attributes; 017 018import ch.qos.logback.core.joran.spi.SaxEventInterpretationContext; 019import ch.qos.logback.core.model.Model; 020import ch.qos.logback.core.model.PropertyModel; 021 022/** 023 * This class serves to build a model for properties which are to the ANT 024 * <property> task which add/set properties of a given object. 025 * 026 * @author Ceki Gülcü 027 */ 028public class PropertyAction extends BaseModelAction { 029 030 static final String RESOURCE_ATTRIBUTE = "resource"; 031 032 @Override 033 protected boolean validPreconditions(SaxEventInterpretationContext interpretationContext, String localName, 034 Attributes attributes) { 035 if ("substitutionProperty".equals(localName)) { 036 addWarn("[substitutionProperty] element has been deprecated. Please use the [variable] element instead."); 037 } 038 return true; 039 } 040 041 @Override 042 protected Model buildCurrentModel(SaxEventInterpretationContext interpretationContext, String name, 043 Attributes attributes) { 044 PropertyModel propertyModel = new PropertyModel(); 045 propertyModel.setName(attributes.getValue(NAME_ATTRIBUTE)); 046 propertyModel.setValue(attributes.getValue(VALUE_ATTRIBUTE)); 047 propertyModel.setScopeStr(attributes.getValue(SCOPE_ATTRIBUTE)); 048 propertyModel.setFile(attributes.getValue(FILE_ATTRIBUTE)); 049 propertyModel.setResource(attributes.getValue(RESOURCE_ATTRIBUTE)); 050 return propertyModel; 051 } 052 053}