http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILogger.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILogger.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILogger.as deleted file mode 100644 index 37df37e..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILogger.as +++ /dev/null @@ -1,40 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - - -package com.adobe.linguistics.spelling.core.logging -{ - -import flash.events.IEventDispatcher; - -public interface ILogger extends IEventDispatcher -{ - function get category():String; - - function log(level:int, message:String, ... rest):void; - function debug(message:String, ... rest):void; - function error(message:String, ... rest):void; - - function fatal(message:String, ... rest):void; - function info(message:String, ... rest):void; - function warn(message:String, ... rest):void; -} - -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILoggingTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILoggingTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILoggingTarget.as deleted file mode 100644 index 47ed7ac..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/ILoggingTarget.as +++ /dev/null @@ -1,39 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging -{ -public interface ILoggingTarget -{ - function get filters():Array; - - function set filters(value:Array):void; - function get level():int; - - function set level(value:int):void; - - function get mask():int; - - function addLogger(logger:ILogger):void; - - function removeLogger(logger:ILogger):void; -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/Log.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/Log.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/Log.as deleted file mode 100644 index e9a720d..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/Log.as +++ /dev/null @@ -1,210 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging -{ - import flash.errors.IllegalOperationError; -public class Log -{ - - private static var _targetLevel:int = LogEventLevel.NONE; - // Initialize target level to a value out of range. - - private static var _loggers:Array; - - private static var _targets:Array = []; - - - public static function isFatal():Boolean - { - return (_targetLevel & LogEventLevel.FATAL) ? true : false; - } - - public static function isError():Boolean - { - return (_targetLevel & LogEventLevel.ERROR) ? true : false; - } - - public static function isWarn():Boolean - { - return (_targetLevel & LogEventLevel.WARN) ? true : false; - } - - public static function isInfo():Boolean - { - return (_targetLevel & LogEventLevel.INFO) ? true : false; - } - - public static function isDebug():Boolean - { - return (_targetLevel & LogEventLevel.DEBUG) ? true : false; - } - - public static function addTarget(target:ILoggingTarget):void - { - if (target) - { - var filters:Array = target.filters; - var logger:ILogger; - // need to find what filters this target matches and set the specified - // target as a listener for that logger. - for (var i:String in _loggers) - { - if (categoryMatchInFilterList(i, filters)) - target.addLogger(ILogger(_loggers[i])); - } - // if we found a match all is good, otherwise we need to - // put the target in a waiting queue in the event that a logger - // is created that this target cares about. - _targets.push(target); - - if (_targetLevel == LogEventLevel.NONE) - _targetLevel = target.mask; - else{ - _targetLevel = _targetLevel | target.mask; - } - } - else - { - throw new IllegalOperationError("addTarget function did not receive null object."); - } - } - - public static function removeTarget(target:ILoggingTarget):void - { - if (target) - { - var filters:Array = target.filters; - var logger:ILogger; - // Disconnect this target from any matching loggers. - for (var i:String in _loggers) - { - if (categoryMatchInFilterList(i, filters)) - { - target.removeLogger(ILogger(_loggers[i])); - } - } - // Remove the target. - for (var j:int = 0; j<_targets.length; j++) - { - if (target == _targets[j]) - { - _targets.splice(j, 1); - j--; - } - } - resetTargetLevel(); - } - else - { - throw new IllegalOperationError("addHandle function did not receive null object."); - } - } - - public static function getLogger(category:String):ILogger - { - checkCategory(category); - if (!_loggers) - _loggers = []; - var newFlag:Boolean = false; - // get the logger for the specified category or create one if it - // doesn't exist - var result:ILogger = _loggers[category]; - if (result == null) - { - result = new LogLogger(category); - _loggers[category] = result; - newFlag = true; - } - - // check to see if there are any targets waiting for this logger. - var target:ILoggingTarget; - for (var i:int = 0; (i < _targets.length)&&(newFlag); i++) - { - target = ILoggingTarget(_targets[i]); - if (categoryMatchInFilterList(category, target.filters)) - target.addLogger(result); - } - - return result; - } - - public static function flush():void - { - _loggers = []; - _targets = []; - _targetLevel = LogEventLevel.NONE; - } - - public static function hasIllegalCharacters(value:String):Boolean - { - return value.search(/[\[\]\~\$\^\&\\(\)\{\}\+\?\/=`!@#%,:;'"<>\s]/) != -1; - } - - private static function categoryMatchInFilterList(category:String, filters:Array):Boolean - { - var result:Boolean = false; - var filter:String; - var index:int = -1; - for (var i:uint = 0; i < filters.length; i++) - { - filter = filters[i]; - // first check to see if we need to do a partial match - // do we have an asterisk? - index = filter.indexOf("*"); - - if (index == 0) - return true; - - index = index < 0 ? index = category.length : index -1; - - if (category.substring(0, index) == filter.substring(0, index)) - return true; - } - return false; - } - - private static function checkCategory(category:String):void - { - var message:String; - - if (category == null || category.length == 0) - { - throw new IllegalOperationError("checkCategory function did not receive null object."); - } - - if (hasIllegalCharacters(category) || (category.indexOf("*") != -1)) - { - throw new IllegalOperationError("checkCategory function did not receive invalid characters."); - } - } - - private static function resetTargetLevel():void - { - var res:int = 0; - for (var i:int = 0; i < _targets.length; i++) - { - res = ( res | (_targets[i].mask) ); - } - _targetLevel = res; - } -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEvent.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEvent.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEvent.as deleted file mode 100644 index d90098d..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEvent.as +++ /dev/null @@ -1,87 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging -{ - -import flash.events.Event; - -public class LogEvent extends Event -{ - public static const eventID:String = "com.adobe.linguistics.spelling.core.logging.LogEvent"; - - public static function getLevelString(value:uint):String - { - switch (value) - { - case LogEventLevel.INFO: - { - return "INFO"; - } - - case LogEventLevel.DEBUG: - { - return "DEBUG"; - } - - case LogEventLevel.ERROR: - { - return "ERROR"; - } - - case LogEventLevel.WARN: - { - return "WARN"; - } - - case LogEventLevel.FATAL: - { - return "FATAL"; - } - - case LogEventLevel.ALL: - { - return "ALL"; - } - } - - return "UNKNOWN"; - } - - public function LogEvent(message:String = "", - level:int = 31 /* LogEventLevel.ALL */) - { - super(LogEvent.eventID, false, false); - - this.message = message; - this.level = level; - } - - public var level:int; - - public var message:String; - - override public function clone():Event - { - return new LogEvent(message, /*type,*/ level); - } -} - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEventLevel.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEventLevel.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEventLevel.as deleted file mode 100644 index a12098b..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogEventLevel.as +++ /dev/null @@ -1,76 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging -{ - import flash.errors.IllegalOperationError; -public final class LogEventLevel -{ - public static const FATAL:int = 16; - - public static const ERROR:int = 8; - - public static const WARN:int = 4; - - public static const INFO:int = 2; - - public static const DEBUG:int = 1; - - public static const ALL:int = (DEBUG | INFO | WARN | ERROR | FATAL); - - public static const NONE:int = 0; - - public static const LoggerLevelList:Array = [DEBUG, INFO, WARN, ERROR, FATAL, ALL]; - - public static function isValidLevel(level:int) :Boolean { - for ( var i:int = 0; i < LoggerLevelList.length ; ++i ) { - if ( (LoggerLevelList[i] == level) ) - return true; - } - return false; - } - - public static function isValidMask(mask:int ):Boolean { - var allMask:int = 0; - for ( var i:int = 0; i< LoggerLevelList.length; ++i ) { - allMask = (allMask | (LoggerLevelList[i])); - } - if ( (allMask | mask ) == allMask ) return true; - return false; - } - - public static function getUpperMask(level:int ) :int { - var result:int = 0; - if ( !isValidLevel(level) ) { - throw new IllegalOperationError("Please input an valid level for getUpperMask."); - } - if ( level == ALL) return level; - for ( var i:int =0; i< LoggerLevelList.length; ++i ) { - if ( (LoggerLevelList[i] >= level) && (LoggerLevelList[i] < ALL) ) { - result =result | LoggerLevelList[i]; - } - } - return result; - } - - -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogLogger.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogLogger.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogLogger.as deleted file mode 100644 index b5a23be..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/LogLogger.as +++ /dev/null @@ -1,102 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging -{ - import flash.errors.IllegalOperationError; - import flash.events.EventDispatcher; -public class LogLogger extends EventDispatcher implements ILogger -{ - public function LogLogger(category:String) - { - super(); - - _category = category; - } - - /** - * @private - * Storage for the category property. - */ - private var _category:String; - - /** - * The category this logger send messages for. - * - */ - public function get category():String - { - return _category; - } - - public function log(level:int, msg:String, ... rest):void - { - dispatchLoggerEvent( level, msg, rest); - } - - public function debug(msg:String, ... rest):void - { - dispatchLoggerEvent( LogEventLevel.DEBUG, msg, rest); - } - - public function error(msg:String, ... rest):void - { - dispatchLoggerEvent( LogEventLevel.ERROR, msg, rest); - } - - public function fatal(msg:String, ... rest):void - { - dispatchLoggerEvent( LogEventLevel.FATAL, msg, rest); - } - - public function info(msg:String, ... rest):void - { - dispatchLoggerEvent( LogEventLevel.INFO, msg, rest); - } - - public function warn(msg:String, ... rest):void - { - dispatchLoggerEvent( LogEventLevel.WARN, msg, rest); - } - - private function dispatchLoggerEvent(level:int, msg:String, options:Array):void { - // we don't want to allow people to log messages at the - // Log.Level.ALL level, so throw a RTE if they do - if ( !LogEventLevel.isValidLevel( level ) ) - { - throw new IllegalOperationError("Please check for level permit."); - } - - if (hasEventListener(LogEvent.eventID)) - { - // replace all of the parameters in the msg string - for (var i:int = 0; i < options.length; i++) - { - msg = msg.replace(new RegExp("\\{"+i+"\\}", "g"), options[i]); - } - - dispatchEvent(new LogEvent(msg, level)); - } - - } - -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/ArrayTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/ArrayTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/ArrayTarget.as deleted file mode 100644 index 61a5a4a..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/ArrayTarget.as +++ /dev/null @@ -1,35 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging.targets -{ - public class ArrayTarget extends CollectionTarget - { - public var items:Array; - public function ArrayTarget(arr:Array, usingLevelMaskMode:Boolean = false) - { - this.items = arr; - super(usingLevelMaskMode); - } - public override function internalLog(msg:String,lvl:int):void { - items.push( {date:this.date, time:this.time, category:this.category, levelString:this.levelString, message:msg, level:lvl } ); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/CollectionTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/CollectionTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/CollectionTarget.as deleted file mode 100644 index b355f04..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/CollectionTarget.as +++ /dev/null @@ -1,107 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging.targets -{ - import com.adobe.linguistics.spelling.core.logging.*; - public class CollectionTarget extends AbstractTarget - { - public var fieldSeparator:String = " "; - - public var includeCategory:Boolean; - - public var includeDate:Boolean; - - public var includeLevel:Boolean; - - public var includeTime:Boolean; - - protected var date:String = ""; - protected var time:String = ""; - protected var levelString:String = ""; - protected var category:String = ""; - - public function CollectionTarget(usingLevelMaskMode:Boolean = false) - { - super(usingLevelMaskMode); - includeTime = false; - includeDate = false; - includeCategory = false; - includeLevel = false; - } - - override public function logEvent(event:LogEvent):void - { - date = ""; - time = ""; - levelString = ""; - category = ""; - if (includeDate || includeTime) - { - var d:Date = new Date(); - if (includeDate) - { - date = Number(d.getMonth() + 1).toString() + "/" + - d.getDate().toString() + "/" + - d.getFullYear(); - } - if (includeTime) - { - time += padTime(d.getHours()) + ":" + - padTime(d.getMinutes()) + ":" + - padTime(d.getSeconds()) + "." + - padTime(d.getMilliseconds(), true); - } - } - - if (includeLevel) - { - levelString = LogEvent.getLevelString(event.level); - } - - category = includeCategory ? ILogger(event.target).category:""; - - internalLog(event.message,event.level); - } - - private function padTime(num:Number, millis:Boolean = false):String - { - if (millis) - { - if (num < 10) - return "00" + num.toString(); - else if (num < 100) - return "0" + num.toString(); - else - return num.toString(); - } - else - { - return num > 9 ? num.toString() : "0" + num.toString(); - } - } - - public function internalLog(message:String, level:int):void - { - // override this method to perform the redirection to the desired output - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/LineFormattedTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/LineFormattedTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/LineFormattedTarget.as deleted file mode 100644 index c1b66eb..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/LineFormattedTarget.as +++ /dev/null @@ -1,104 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging.targets -{ - import com.adobe.linguistics.spelling.core.logging.*; -public class LineFormattedTarget extends AbstractTarget -{ - public function LineFormattedTarget(usingLevelMaskMode:Boolean = false) - { - super(usingLevelMaskMode); - - includeTime = false; - includeDate = false; - includeCategory = false; - includeLevel = false; - } - - public var fieldSeparator:String = " "; - - public var includeCategory:Boolean; - - public var includeDate:Boolean; - - public var includeLevel:Boolean; - - public var includeTime:Boolean; - - override public function logEvent(event:LogEvent):void - { - var date:String = "" - if (includeDate || includeTime) - { - var d:Date = new Date(); - if (includeDate) - { - date = Number(d.getMonth() + 1).toString() + "/" + - d.getDate().toString() + "/" + - d.getFullYear() + fieldSeparator; - } - if (includeTime) - { - date += padTime(d.getHours()) + ":" + - padTime(d.getMinutes()) + ":" + - padTime(d.getSeconds()) + "." + - padTime(d.getMilliseconds(), true) + fieldSeparator; - } - } - - var level:String = ""; - if (includeLevel) - { - level = "[" + LogEvent.getLevelString(event.level) + - "]" + fieldSeparator; - } - - var category:String = includeCategory ? - ILogger(event.target).category + fieldSeparator : - ""; - - internalLog(date + category+ level + event.message,event.level); - } - - private function padTime(num:Number, millis:Boolean = false):String - { - if (millis) - { - if (num < 10) - return "00" + num.toString(); - else if (num < 100) - return "0" + num.toString(); - else - return num.toString(); - } - else - { - return num > 9 ? num.toString() : "0" + num.toString(); - } - } - - public function internalLog(message:String, level:int):void - { - // override this method to perform the redirection to the desired output - } -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TextFieldTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TextFieldTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TextFieldTarget.as deleted file mode 100644 index bb4d75b..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TextFieldTarget.as +++ /dev/null @@ -1,52 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging.targets -{ - - import flash.text.TextField; - public class TextFieldTarget extends LineFormattedTarget - { - public var autoScroll:Boolean = true ; - public var textfield:TextField ; - - public function TextFieldTarget( textfield:TextField,usingLevelMaskMode:Boolean = false ) - { - super(usingLevelMaskMode); - this.textfield = textfield ; - } - - public override function internalLog( message:String , level:int ):void - { - if ( textfield != null ) - { - textfield.appendText( message + "\r"); - if ( autoScroll ) - { - textfield.scrollV = textfield.maxScrollV ; - } - } - else - { - throw new ReferenceError( "The internal textfield reference of the target not must be null." ) ; - } - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TraceTarget.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TraceTarget.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TraceTarget.as deleted file mode 100644 index 5571fcd..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/logging/targets/TraceTarget.as +++ /dev/null @@ -1,37 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.logging.targets -{ - -public class TraceTarget extends LineFormattedTarget -{ - public function TraceTarget(usingLevelMaskMode:Boolean = false) - { - super(usingLevelMaskMode); - } - - public override function internalLog(message:String,level:int):void - { - trace(message); - } -} - -} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixEntry.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixEntry.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixEntry.as deleted file mode 100644 index 4ec678d..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixEntry.as +++ /dev/null @@ -1,137 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - import com.adobe.linguistics.spelling.core.LinguisticRule; - - public class AffixEntry - { - private var _flag:int; - private var _stripValue:String; /*stripping characters from beginning (at prefix rules) or end (at suffix rules) of the word */ - private var _affixValue:String; /* affix (optionally with flags of continuation classes, separated by a slash) */ - private var _conditionString:String; /*Zero stripping or affix are indicated by zero. - Zero condition is indicated by dot. Condition is a simplified, regular expression-like pattern, - which must be met before the affix can be applied. (Dot signs an arbitrary character. Characters - in braces sign an arbitrary character from the character subset. Dash hasnât got special meaning, - but circumflex (^) next the first brace sets the complementer character set.) */ - private var _conditionPattern:RegExp; - private var _permissionToCombine:Boolean; /* Cross product (permission to combine prefixes and suffixes). Possible values: Y (yes) or N (no) */ - private var _type:int; // 0 means prefix, 1 means suffix... - private var _morphologicalFields:String; //Optional morphological fields separated by spaces or tabulators. - private var _contclass:String; //Added for Double affix support - - private var _attrMgr:LinguisticRule; - - - public function AffixEntry(affixFlag:int, stripString:String, affixValue:String, conditionStr:String, morph:String = "", permission:Boolean = false, affixType:int = 0, contclass:String=null) - { - this.flag = affixFlag; - this.conditionString = conditionStr; - this.stripValue = stripString; - this.affixKey = affixValue; - this.permissionToCombine = permission; - this.type = affixType; - this.morphologicalFields = morph; - this.attributeManager = null; - this.contclass=contclass;//can be null too - this._conditionPattern = (affixType == 0) ? new RegExp("^"+conditionStr+".*"+"$"): new RegExp("^"+".*"+conditionStr+"$"); - } - - public function set attributeManager( attrMgr:LinguisticRule):void { - this._attrMgr = attrMgr; - } - - public function get attributeManager( ):LinguisticRule { - return this._attrMgr; - } - - public function set morphologicalFields(value:String):void { - this._morphologicalFields = value; - } - - public function get morphologicalFields():String { - return this._morphologicalFields; - } - - public function set permissionToCombine(value:Boolean) : void { - this._permissionToCombine = value; - } - - public function get permissionToCombine():Boolean { - return this._permissionToCombine; - } - - public function get flag():int { - return this._flag; - } - public function set flag(affixFlag:int):void { - this._flag = affixFlag; - } - - public function get type():int { - return this._type; - } - - public function set type(affixType:int):void { - this._type = affixType; - } - - public function set stripValue(value:String):void { - this._stripValue = value; - } - - public function get stripValue():String { - return this._stripValue; - } - - public function set affixKey(value:String):void { - this._affixValue = value; - } - - public function get affixKey():String { - return this._affixValue; - } - - public function set contclass(value:String):void { - this._contclass = value; - } - - public function get contclass():String { - return this._contclass; - } - - public function get conditionString():String { - return this._conditionString; - } - - public function set conditionString(value:String):void { - this._conditionString = value; - } - - public function get conditionPattern():RegExp { - return this._conditionPattern; - } - public function set conditionPattern(value:RegExp):void { - this._conditionPattern = value; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixRule.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixRule.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixRule.as deleted file mode 100644 index 2633bd6..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/AffixRule.as +++ /dev/null @@ -1,92 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - - public class AffixRule - { - private var _name:String; - private var _type:uint; - private var _stripValue:String; - private var _affixValue:String; - private var _conditionPattern:String; - private var _permissionToCombine:Boolean; - - public function AffixRule(affixName:String, affixType:uint, stripString:String, affixString:String, conditionString:String, permission:Boolean = true) - { - this.name = affixName; - this._conditionPattern = conditionString; - this.type = affixType; - this.stripValue = stripString; - this.affixValue = affixString; - this.permissionToCombine = permission; - - } - - public function set permissionToCombine(value:Boolean) : void { - this._permissionToCombine = value; - } - - public function get permissionToCombine():Boolean { - return this._permissionToCombine; - } - - public function get name():String { - return this._name; - } - public function set name(affixName:String):void { - this._name = affixName; - } - - public function get type():uint { - return this._type; - } - - public function set type(affixType:uint):void { - this._type = affixType; - } - - public function set stripValue(value:String):void { - this._stripValue = value; - } - - public function get stripValue():String { - return this._stripValue; - } - - public function set affixValue(value:String):void { - this._affixValue = value; - } - - public function get affixValue():String { - return this._affixValue; - } - - public function get conditionPattern():String { - return this._conditionPattern; - } - - public function set conditionPattern(value:String):void { - this._conditionPattern = value; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/MapFilter.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/MapFilter.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/MapFilter.as deleted file mode 100644 index 3c241ed..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/MapFilter.as +++ /dev/null @@ -1,39 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - - public class MapFilter - { - private var _mapCharSet:String; - public function MapFilter(mapString:String) - { - this.mapCharSet = mapString; - } - public function get mapCharSet():String { - return this._mapCharSet; - } - public function set mapCharSet(value:String) : void { - this._mapCharSet = value; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedPrefixEntry.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedPrefixEntry.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedPrefixEntry.as deleted file mode 100644 index b448338..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedPrefixEntry.as +++ /dev/null @@ -1,245 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - import com.adobe.linguistics.spelling.core.HashEntry; - import com.adobe.linguistics.spelling.core.env.InternalConstants; - public class OptimizedPrefixEntry extends AffixEntry - { - private var _flagNext:OptimizedPrefixEntry; - private var _keyNext:OptimizedPrefixEntry; - private var _flags:Array; - private var _pfxTable:Array; - public function OptimizedPrefixEntry(pfxEntry:PrefixEntry) - { - - super(pfxEntry.flag,pfxEntry.stripValue,pfxEntry.affixKey,pfxEntry.conditionString,pfxEntry.morphologicalFields, pfxEntry.permissionToCombine, 0,pfxEntry.contclass); - _flags = new Array(); - this._pfxTable = new Array(); - this.nextElementWithFlag = null; - this.nextElementWithKey = null; - _flags.push(this.flag); - this._pfxTable.push(pfxEntry); - this.flag = -1; - this.conditionString = ""; - } - - public function isSimilarObject(pfxEntry:PrefixEntry):Boolean { - var chkString:String=this.contclass+pfxEntry.contclass; - if(chkString)chkString=chkString.split('').sort().join('').replace(/(.)\1+/gi,'$1');//this pattern removes any repetition from strings. this will work only because we are converting n' or q' to Long numbers in decode flags - if ( (this.stripValue == pfxEntry.stripValue) && (this.affixKey == pfxEntry.affixKey) && (this.permissionToCombine == pfxEntry.permissionToCombine) && (this.morphologicalFields == pfxEntry.morphologicalFields)&&(this.contclass==chkString) ) return true; - return false; - } - - public function extendObject( pfxEntry:PrefixEntry ):Boolean { - if ( !isSimilarObject(pfxEntry) ) { - return false; - } - _flags.push( pfxEntry.flag); - this._pfxTable.push( pfxEntry ); - - var newConditionString:String; - newConditionString = this.conditionPattern.source + "|" + "^"+pfxEntry.conditionString+".*"+"$"; - this.conditionPattern = new RegExp ( newConditionString); - this.contclass=pfxEntry.contclass; - return true; - } - - public function get nextElementWithKey():OptimizedPrefixEntry { - return this._keyNext; - } - - public function set nextElementWithKey(pfxEntry:OptimizedPrefixEntry):void { - this._keyNext = pfxEntry; - } - - public function get nextElementWithFlag():OptimizedPrefixEntry { - return this._flagNext; - } - - public function set nextElementWithFlag(pfxEntry:OptimizedPrefixEntry):void { - this._flagNext = pfxEntry; - } - - public function get flags():Array { - return this._flags; - } - - /* - * Deprecated function for now... - * History: - * A pre-version of implementation for error detection. After I optimized the code for performance, - * I drop this function by that time, but you know performance meassuring is a tricky problem... - * ToDo: Need a revisit when we implementing complex-affix support and compound-word support. - */ - // check if this prefix entry matches - public function checkWord( word:String, sfxopts:int, ppfx:AffixEntry, inCompound:int, needFlag:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - // if this suffix is being cross checked with a prefix - // but it does not support cross products skip it - if ( (sfxopts& InternalConstants.aeXPRODUCT) != 0 && this.permissionToCombine != true ) return null; - // on entry prefix is 0 length or already matches the beginning of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip) ) { - // generate new root word by removing prefix and adding - // back any characters that would have been stripped - word = this.stripValue + word.substr(this.affixKey.length); - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( he.testAffixs(this._flags) && ( (!needFlag) || he.testAffix(needFlag) ) ) { - return he; - } - he = he.next; - } - } - } - - } - return he; - } - - // check if this prefix entry matches - public function checkWord2( word:String, inCompound:int, needFlag:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int,j:int; - // on entry prefix is 0 length or already matches the beginning of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip) ) { - // generate new root word by removing prefix and adding - // back any characters that would have been stripped - word = this.stripValue + word.substr(this.affixKey.length); - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( he.testAffixs(this._flags) && ( (!needFlag) || he.testAffix(needFlag) ) ) { - for ( j=0;j<this._pfxTable.length;++j) { - if ( (this._pfxTable[j] ).conditionPattern.test(word) ) { - if ( he.testAffix(this._flags[j]) ){ - return he; - } - } - } - } - he = he.next; - } - } - //if ((opts & aeXPRODUCT) && in_compound) - if ( this.permissionToCombine ) { - for(i=0; j<this.flags[i];i++) - { - he = this.attributeManager.optSuffixCheck2(word, InternalConstants.aeXPRODUCT,this, needFlag, inCompound,this.flags[i]); - - if (he) - { - - for ( j=0;j<this._pfxTable.length;++j) - { - if ( (this._pfxTable[j] ).conditionPattern.test(word) && (this._pfxTable[j].flag ==this.flags[i]) ) - { - - return he; - - } - } - he = null; - } - } - } - } - - } - return he; - } - - //checkTwoWord - public function checkTwoWord( word:String, inCompound:int, needFlag:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int,j:int; - // on entry prefix is 0 length or already matches the beginning of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip) ) { - // generate new root word by removing prefix and adding - // back any characters that would have been stripped - word = this.stripValue + word.substr(this.affixKey.length); - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // do not look word in hash table - - //if ((opts & aeXPRODUCT) && in_compound) - if ( this.permissionToCombine && inCompound!=1/*IN_CPD_BEGIN*/) {//TODO: figure this constant - for(i=0; j<this.flags[i];i++) - { - - he = this.attributeManager.optTwoSuffixCheck(word, InternalConstants.aeXPRODUCT,this,needFlag,this.flags[i]);//this is the c2 - if (he) { - for ( j=0;j<this._pfxTable.length;++j) { //Squiggly will handle undrinkables from here - if ( (this._pfxTable[j] ).conditionPattern.test(word)&& (this._pfxTable[j].flag ==this.flags[i]) ) - { - - return he; - - } - } - he = null; - } - } - } - } - - } - return he; - } - //-- - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedSuffixEntry.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedSuffixEntry.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedSuffixEntry.as deleted file mode 100644 index 7d6ee58..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/OptimizedSuffixEntry.as +++ /dev/null @@ -1,301 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - import com.adobe.linguistics.spelling.core.HashEntry; - import com.adobe.linguistics.spelling.core.env.InternalConstants; - import com.adobe.linguistics.spelling.core.utils.StringUtils; - - public class OptimizedSuffixEntry extends AffixEntry - { - private var _flagNext:OptimizedSuffixEntry; - private var _keyNext:OptimizedSuffixEntry; - private var _flags:Array; - private var _sfxTable:Array; - private var _reverseAffixKey:String; - public function OptimizedSuffixEntry(sfxEntry:SuffixEntry) - { - super(sfxEntry.flag,sfxEntry.stripValue,sfxEntry.affixKey,sfxEntry.conditionString,sfxEntry.morphologicalFields, sfxEntry.permissionToCombine, sfxEntry.type,sfxEntry.contclass); - _flags = new Array(); - _sfxTable = new Array(); - this.nextElementWithFlag = null; - this.nextElementWithKey = null; - _flags.push(this.flag); - _sfxTable.push(sfxEntry); - this.reverseAffixKey = StringUtils.reverseString(this.affixKey); - this.flag = -1; - this.conditionString = ""; - } - - public function isSimilarObject(sfxEntry:SuffixEntry):Boolean { - var chkString:String=this.contclass+sfxEntry.contclass; - if(chkString)chkString=chkString.split('').sort().join('').replace(/(.)\1+/gi,'$1');//this pattern removes any repetition from strings. this will work only because we are converting n' or q' to Long numbers in decode flags - if ( (this.stripValue == sfxEntry.stripValue) && (this.affixKey == sfxEntry.affixKey) && (this.permissionToCombine == sfxEntry.permissionToCombine) && (this.morphologicalFields == sfxEntry.morphologicalFields) &&(this.contclass==chkString) ) return true; - return false; - } - - public function extendObject( sfxEntry:SuffixEntry ):Boolean { - - if ( !isSimilarObject(sfxEntry) ) return false; - _flags.push(sfxEntry.flag); - _sfxTable.push(sfxEntry); - var newConditionString:String; - newConditionString = this.conditionPattern.source + "|" + "^"+".*"+sfxEntry.conditionString+"$"; - this.conditionPattern = new RegExp ( newConditionString); - //now add in contclass - this.contclass=sfxEntry.contclass; - return true; - } - - public function set reverseAffixKey(value:String):void { - this._reverseAffixKey = value; - } - - public function get reverseAffixKey():String { - return this._reverseAffixKey; - } - - public function get nextElementWithKey():OptimizedSuffixEntry { - return this._keyNext; - } - - public function set nextElementWithKey(pfxEntry:OptimizedSuffixEntry):void { - this._keyNext = pfxEntry; - } - - public function get nextElementWithFlag():OptimizedSuffixEntry { - return this._flagNext; - } - - public function set nextElementWithFlag(pfxEntry:OptimizedSuffixEntry):void { - this._flagNext = pfxEntry; - } - - public function get flags():Array { - return this._flags; - } - - /* - * Deprecated function for now... - * History: - * A pre-version of implementation for error detection. After I optimized the code for performance, - * I drop this function by that time, but you know performance meassuring is a tricky problem... - * ToDo: Need a revisit when we implementing complex-affix support and compound-word support. - */ - // see if this suffix is present in the word - public function checkWord( word:String, needFlag:int, inCompound:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - - // upon entry suffix is 0 length or already matches the end of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( (disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip)) ) { - // generate new root word by removing suffix and adding - // back any characters that would have been stripped or - // or null terminating the shorter string - word = word.substr(0, word.length - this.affixKey.length) + this.stripValue; - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( he.testAffixs(this._flags) && ( (!needFlag) || he.testAffix(needFlag) ) ) { - return he; - } - he = he.next; - } - } - //if ((opts & aeXPRODUCT) && in_compound) - if ( this.permissionToCombine ) { - he = this.attributeManager.optPrefixCheck(word, InternalConstants.aeXPRODUCT,this, needFlag, inCompound); - if (he) return he; - } - } - - } - return he; - } - - //for develepors only, function used for printing flags when flag_mode=FLAG.LONG presently not being called anywhere - public function printFlag(flag:Number):void{ - var result:String = String.fromCharCode(flag>>8) + String.fromCharCode(flag-((flag>>8)<<8)); - var x:String= this.affixKey; - } - // see if this suffix is present in the word - public function checkWord2( word:String, sfxopts:int, ppfx:AffixEntry, needFlag:int, inCompound:int, cclass:int, pfxcclass:int=0):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - - // if this suffix is being cross checked with a prefix - // but it does not support cross products skip it - if ( (sfxopts& InternalConstants.aeXPRODUCT) != 0 && this.permissionToCombine != true ) return null; - - // upon entry suffix is 0 length or already matches the end of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( (disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip)) ) { - // generate new root word by removing suffix and adding - // back any characters that would have been stripped or - // or null terminating the shorter string - word = word.substr(0, word.length - this.affixKey.length) + this.stripValue; - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( (( he.testAffixs(this._flags) ) && ( (!needFlag) || he.testAffix(needFlag) ))||(ppfx && ppfx.contclass) ) { - for ( var j:int=0;j<this._sfxTable.length;++j) { - if ( (this._sfxTable[j] ).conditionPattern.test(word) ) { - if(!ppfx) - { - if(cclass) - { - if (he.testAffix(this._flags[j]) && HashEntry.TESTAFF(this.contclass,cclass) )//should handle cases like drink->able->s also in un-run-able-s if run-->able and able-->s and s-->un this should suffice - return he; - } - else - { if(he.testAffix(this._flags[j]))//should handle all normal cases like drink->able or drink->s - return he; - } - - - } - else - { - if(this.contclass && he.testAffix(this._flags[j]) && HashEntry.TESTAFF(this.contclass,cclass) && !pfxcclass) // handle when suffix has contclass like l'->autre->s - { - return he; - } - if(ppfx.contclass && HashEntry.TESTAFF(ppfx.contclass,this._flags[j]) && he.testAffix(cclass) && !pfxcclass) //handle when prefix has contclass like milli->litre->s - { - return he; - } - if(he.testAffix(this._flags[j]) && he.testAffix(cclass))//handle normal cases when both pfx and sfx exist in hash affix string - { - return he; - } - - //special case of un-drink-able-s - if( (he.testAffix(pfxcclass) && ppfx.contclass && HashEntry.TESTAFF(ppfx.contclass,this._flags[j]) && this.contclass && HashEntry.TESTAFF(this.contclass,cclass)) - || (he.testAffix(this._flags[j]) && this.contclass && HashEntry.TESTAFF(this.contclass,cclass) && HashEntry.TESTAFF(this.contclass,pfxcclass)) - ) - { - return he; - } - - - } - - } - } - } - he = he.next; - } - } - - } - - } - return he; - } - - // Function for two level suffix checkword - // see if this suffix is present in the word - public function checkTwoWord( word:String, sfxopts:int, ppfx:AffixEntry, needFlag:int, cclass:int, pfxcclass:int=0):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - - // if this suffix is being cross checked with a prefix - // but it does not support cross products skip it - if ( (sfxopts& InternalConstants.aeXPRODUCT) != 0 && this.permissionToCombine != true ) return null; - - // upon entry suffix is 0 length or already matches the end of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( (disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip)) ) { - // generate new root word by removing suffix and adding - // back any characters that would have been stripped or - // or null terminating the shorter string - word = word.substr(0, word.length - this.affixKey.length) + this.stripValue; - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then see if for conditional suffix and if this has been stripped by a possible - // contclass check the remaining word - // eg: if drinkables was original word and after possible stripping of s we have drinkable very if - // now check drinkable, able will be stripped and drink will be found that hash entry will then be returned - if ( this.conditionPattern.test( word ) ) {//checks a whole group of - - if(ppfx) - { //check for conditional suffix - if( contclass!=null && HashEntry.TESTAFF(contclass, pfxcclass)) - { - he = this.attributeManager.optSuffixCheck2(word, 0, null,needFlag,0,cclass,pfxcclass);//we are not sending ppfx here as it will not be needed. - } - else - { - he = this.attributeManager.optSuffixCheck2(word, sfxopts, ppfx,needFlag,0,cclass,pfxcclass); - } - } - else - { - he = this.attributeManager.optSuffixCheck2(word, 0, null,needFlag,0,cclass,0); - } - if (he) { - for ( var j:int=0;j<this._sfxTable.length;++j) { //Squiggly will handle drink->able->s from here - if ( (this._sfxTable[j]).conditionPattern.test(word) && cclass==(this._sfxTable[j]).flag) {//only permit words which end with s in drinkables - - return he; - - } - } - he = null; - } - - } - - } - - return he; - } - //-- - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/PrefixEntry.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/PrefixEntry.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/PrefixEntry.as deleted file mode 100644 index 7df2e55..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/PrefixEntry.as +++ /dev/null @@ -1,102 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - import com.adobe.linguistics.spelling.core.HashEntry; - import com.adobe.linguistics.spelling.core.env.InternalConstants; - public class PrefixEntry extends AffixEntry - { - private var _flagNext:PrefixEntry; - private var _keyNext:PrefixEntry; - public function PrefixEntry(affixFlag:int, stripString:String, affixValue:String, conditionString:String, morph:String = "", permission:Boolean = false,contclass:String=null) - { - super(affixFlag,stripString,affixValue,conditionString,morph, permission, 0,contclass); - this.nextElementWithFlag = null; - this.nextElementWithKey = null; - } - - public function add(root:String):String { - if ( this.conditionPattern.test(root) ) - return this.affixKey + root.substring(this.stripValue.length ); - return null; - } - - public function get nextElementWithKey():PrefixEntry { - return this._keyNext; - } - - public function set nextElementWithKey(pfxEntry:PrefixEntry):void { - this._keyNext = pfxEntry; - } - - public function get nextElementWithFlag():PrefixEntry { - return this._flagNext; - } - - public function set nextElementWithFlag(pfxEntry:PrefixEntry):void { - this._flagNext = pfxEntry; - } - - // check if this prefix entry matches - public function checkWord( word:String, inCompound:int, needFlag:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - // on entry prefix is 0 length or already matches the beginning of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip) ) { - // generate new root word by removing prefix and adding - // back any characters that would have been stripped - word = this.stripValue + word.substr(this.affixKey.length); - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( he.testAffix(this.flag) && ( (!needFlag) || he.testAffix(needFlag) ) ) { - return he; - } - he = he.next; - } - } - //if ((opts & aeXPRODUCT) && in_compound) - if ( this.permissionToCombine ) { - he = this.attributeManager.suffixCheck2(word, InternalConstants.aeXPRODUCT,this, needFlag, inCompound); - if (he) return he; - } - } - - } - return he; - } - - - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/ReplacementFilter.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/ReplacementFilter.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/ReplacementFilter.as deleted file mode 100644 index 8f0b1d9..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/ReplacementFilter.as +++ /dev/null @@ -1,34 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - /* - * Deprecated class for now... - * ToDo: It is a place holder for metaphone algorithm in the rule based engine. - */ - public class ReplacementFilter - { - public function ReplacementFilter() - { - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SimpleFilter.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SimpleFilter.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SimpleFilter.as deleted file mode 100644 index 4763059..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SimpleFilter.as +++ /dev/null @@ -1,48 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - public class SimpleFilter - { - private var _matchString:String; - private var _replacementString:String; - public function SimpleFilter(matchingString:String, replacementString:String) - { - this.matchString = matchingString; - this.replacement = replacementString; - } - - public function set matchString(value:String) :void { - this._matchString = value; - } - public function get matchString():String { - return this._matchString; - } - - public function set replacement(value:String) :void { - this._replacementString = value; - } - public function get replacement() :String { - return this._replacementString; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SuffixEntry.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SuffixEntry.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SuffixEntry.as deleted file mode 100644 index 313ada3..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/rule/SuffixEntry.as +++ /dev/null @@ -1,126 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - -package com.adobe.linguistics.spelling.core.rule -{ - import com.adobe.linguistics.spelling.core.HashEntry; - import com.adobe.linguistics.spelling.core.env.InternalConstants; - - public class SuffixEntry extends AffixEntry - { - private var _flagNext:SuffixEntry; - private var _keyNext:SuffixEntry; - private var _conditionPattern2:RegExp = null;; - private var _noTestFlag:Boolean = false; - public function SuffixEntry(affixFlag:int, stripString:String, affixValue:String, conditionString:String, morph:String = "", permission:Boolean = false, contclass:String=null) - { - super(affixFlag,stripString,affixValue,conditionString,morph, permission, 1,contclass); - this.nextElementWithFlag = null; - this.nextElementWithKey = null; - if ( this.stripValue != "" ) { - if ( this.conditionString == "." ) { - this._conditionPattern2 = null; - this._noTestFlag = true; - - }else { - var stripPattern:RegExp = new RegExp ( "^(.*)"+this.stripValue+"$" ); - var strArr:Array; - if ( (strArr = this.conditionString.match(stripPattern) ) != null ) { - if ( strArr[1] != "" ) { - this._conditionPattern2 = new RegExp( "^.*" + strArr[1] + "$" ); - }else { - this._conditionPattern2 = null; - this._noTestFlag = true; - } - }else { - this._conditionPattern2 = this.conditionPattern; - } - } - } - - } - - public function add(root:String):String { - if ( this.conditionPattern.test(root) ) - return root.substring(0, (root.length-this.stripValue.length) ) + this.affixKey; - return null; - } - - public function get nextElementWithKey():SuffixEntry { - return this._keyNext; - } - - public function set nextElementWithKey(pfxEntry:SuffixEntry):void { - this._keyNext = pfxEntry; - } - - public function get nextElementWithFlag():SuffixEntry { - return this._flagNext; - } - - public function set nextElementWithFlag(pfxEntry:SuffixEntry):void { - this._flagNext = pfxEntry; - } - - // see if this suffix is present in the word - public function checkWord( word:String, sfxopts:int, ppfx:AffixEntry, needFlag:int, inCompound:int):HashEntry { - var disLen:int = word.length - this.affixKey.length; - var he:HashEntry = null; - var i:int; - - // if this suffix is being cross checked with a prefix - // but it does not support cross products skip it - if ( (sfxopts& InternalConstants.aeXPRODUCT) != 0 && this.permissionToCombine != true ) return null; - - // upon entry suffix is 0 length or already matches the end of the word. - // So if the remaining root word has positive length - // and if there are enough chars in root word and added back strip chars - // to meet the number of characters conditions, then test it - if ( (disLen > 0 || (disLen == 0 && this.attributeManager.fullStrip)) ) { - // generate new root word by removing suffix and adding - // back any characters that would have been stripped or - // or null terminating the shorter string - word = word.substr(0, word.length - this.affixKey.length) + this.stripValue; - // now make sure all of the conditions on characters - // are met. Please see the appendix at the end of - // this file for more info on exactly what is being - // tested - // if all conditions are met then check if resulting - // root word in the dictionary - if ( this._noTestFlag || this.conditionPattern.test( word ) ) { - // look word in hash table - for ( i=0; i < this.attributeManager.dictionaryManager.dictonaryList.length && !he; ++i ) { - he = this.attributeManager.dictionaryManager.dictonaryList[i].getElement(word); - while( he ) { - if ( he.testAffix(this.flag) && ( (!needFlag) || he.testAffix(needFlag) ) ) { - return he; - } - he = he.next; - } - } - - } - - } - return he; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/4e4f9830/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/utils/DictionaryLoader.as ---------------------------------------------------------------------- diff --git a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/utils/DictionaryLoader.as b/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/utils/DictionaryLoader.as deleted file mode 100644 index 1092179..0000000 --- a/Squiggly/main/AdobeSpellingEngine/src/com/adobe/linguistics/spelling/core/utils/DictionaryLoader.as +++ /dev/null @@ -1,94 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// - - - -package com.adobe.linguistics.spelling.core.utils -{ - import flash.events.Event; - import flash.events.EventDispatcher; - import flash.events.IOErrorEvent; - import flash.events.SecurityErrorEvent; - import flash.net.URLLoader; - import flash.net.URLLoaderDataFormat; - import flash.net.URLRequest; - import flash.utils.ByteArray; - import flash.utils.getTimer; - - public class DictionaryLoader extends EventDispatcher - { - private var dataloader:URLLoader; - private var _data:ByteArray; - public function DictionaryLoader(request:URLRequest=null) - { - dataloader = new URLLoader(); - dataloader.dataFormat = URLLoaderDataFormat.BINARY; - dataloader.addEventListener(Event.COMPLETE,handleComplete); - dataloader.addEventListener(IOErrorEvent.IO_ERROR,handleError); - dataloader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,handleError); - if (request) { - try { - load(request); - } - catch (error:Error) { - - } - } - else - { - dispatchEvent(new Event(Event.COMPLETE)); - } - } - - public function get bytesTotal():uint { - return dataloader.bytesTotal; - } - - public function get data():ByteArray { - return this._data; - } - - public function load(request:URLRequest):void { - _data = null; - //trace("Before Actual load: "+getTimer()+" "+dataloader.bytesLoaded); - dataloader.load(request); - - } - - private function handleComplete(evt:Event):void { - // add to-do function. - this._data = (dataloader.data as ByteArray); - dispatchEvent(new Event(Event.COMPLETE)); - } - - private function handleError(evt:Event):void { - bounceEvent(evt); - } - - private function bounceEvent(evt:Event):void { - dispatchEvent(evt.clone()); - } - - public function getData(): ByteArray { - return this._data; - } - - - } -} \ No newline at end of file
