public static IEntity PrepareToHandle(IEntity entity) { ChangeableEntity changeableEntity = entity as ChangeableEntity; if (changeableEntity != null && changeableEntity.ChangeToEntity != null) { return(changeableEntity.Change()); } return(entity); }
public bool IsValid(ChangeableEntity changeableEntity) { foreach (IEntity allowedEntity in changeableEntity.AllowedEntities) { if (ValidType.IsInstanceOfType(allowedEntity)) { changeableEntity.ChangeToEntity = allowedEntity; return(true); } } return(false); }
public bool IsValid(ChangeableEntity changeableEntity) { foreach (IEntity entity in changeableEntity.AllowedEntities) { if (IsValid(entity)) { changeableEntity.ChangeToEntity = entity; return(true); } } return(false); }
public override EntityRegexMatchState Interpret(EntityRegexMatchInfo info, EntityRegexMatchState state) { if (state == null || state.Count == 0) { return(null); } EntityRegexMatchState result = new EntityRegexMatchState(); //foreach stateItem in original state foreach (StateItem stateItem in state) { if (info.StartIndex + stateItem.NextEntityIndex < info.Entities.Length) { //evaluate regex IEntity entity = info.Entities[info.StartIndex + stateItem.NextEntityIndex]; ChangeableEntity changeableEntity = entity as ChangeableEntity; WordHolder.WordItem item = null; if (changeableEntity != null) { foreach (IEntity allowedEntity in changeableEntity.AllowedEntities) { item = Holder.Find(allowedEntity.Value.ToUpper()); if (item != null) { break; } } } else { item = Holder.Find(entity.Value.ToUpper()); } if (item != null) { stateItem.AddPassed(info.CurrentPatternIndex, item.Value); result.Add(stateItem); } } } return(result); }