/** GSWClientSideScript.m - GSWeb: Class GSWClientSideScript Copyright (C) 1999-2004 Free Software Foundation, Inc. Written by: Manuel Guesdon Date: May 1999 $Revision$ $Date$ This file is part of the GNUstep Web Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ #include "config.h" RCS_ID("$Id$") #include "GSWeb.h" static GSWIMP_BOOL standardEvaluateConditionInContextIMP = NULL; static Class standardClass = Nil; //==================================================================== @implementation GSWClientSideScript //-------------------------------------------------------------------- + (void) initialize { if (self == [GSWClientSideScript class]) { standardClass=[GSWClientSideScript class]; standardEvaluateConditionInContextIMP = (GSWIMP_BOOL)[self instanceMethodForSelector:evaluateConditionInContextSEL]; }; }; //-------------------------------------------------------------------- -(id)initWithName:(NSString*)aName associations:(NSDictionary*)associations template:(GSWElement*)templateElement { NSMutableDictionary* tmpAssociations=[NSMutableDictionary dictionaryWithDictionary:associations]; [tmpAssociations removeObjectForKey:scriptFile__Key]; [tmpAssociations removeObjectForKey:scriptString__Key]; [tmpAssociations removeObjectForKey:scriptSource__Key]; [tmpAssociations removeObjectForKey:hideInComment__Key]; [tmpAssociations removeObjectForKey:language__Key]; _otherAttributes=[NSDictionary dictionaryWithDictionary:tmpAssociations]; RETAIN(_otherAttributes); if ((self=[super initWithName:aName associations:nil template:templateElement])) { _scriptFile = [[associations objectForKey:scriptFile__Key withDefaultObject:[_scriptFile autorelease]] retain]; _scriptString = [[associations objectForKey:scriptString__Key withDefaultObject:[_scriptString autorelease]] retain]; _scriptSource = [[associations objectForKey:scriptSource__Key withDefaultObject:[_scriptSource autorelease]] retain]; _hideInComment = [[associations objectForKey:hideInComment__Key withDefaultObject:[_hideInComment autorelease]] retain]; _language = [[associations objectForKey:language__Key withDefaultObject:[_language autorelease]] retain]; }; return self; }; //-------------------------------------------------------------------- -(void)dealloc { DESTROY(_scriptFile); DESTROY(_scriptString); DESTROY(_scriptSource); DESTROY(_hideInComment); DESTROY(_language); DESTROY(_otherAttributes); [super dealloc]; }; //-------------------------------------------------------------------- @end //==================================================================== @implementation GSWClientSideScript (GSWClientSideScriptA) -(void)appendToResponse:(GSWResponse*)aResponse inContext:(GSWContext*)aContext { GSWComponent* component=nil; BOOL hideInCommentValue=NO; id languageValue=nil; id scriptValue=nil; GSWStartElement(aContext); GSWSaveAppendToResponseElementID(aContext); component=GSWContext_component(aContext); [super appendToResponse:aResponse inContext:aContext]; //hideInCommentValue=[_hideInComment valueInComponent:component]; hideInCommentValue=GSWDynamicElement_evaluateValueInContext(self,standardClass, standardEvaluateConditionInContextIMP, _hideInComment,aContext); GSWResponse_appendContentAsciiString(aResponse,@""); GSWStopElement(aContext); }; //-------------------------------------------------------------------- @end