Return-Path: X-Original-To: apmail-flex-commits-archive@www.apache.org Delivered-To: apmail-flex-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2A053F567 for ; Tue, 7 May 2013 22:47:10 +0000 (UTC) Received: (qmail 32927 invoked by uid 500); 7 May 2013 22:47:10 -0000 Delivered-To: apmail-flex-commits-archive@flex.apache.org Received: (qmail 32885 invoked by uid 500); 7 May 2013 22:47:10 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 32879 invoked by uid 99); 7 May 2013 22:47:09 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 May 2013 22:47:09 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id B10F3889238; Tue, 7 May 2013 22:47:09 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: gordonsmith@apache.org To: commits@flex.apache.org Message-Id: <98502de1d4d2449d84dadafc7d7cf6a0@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: [flex-falcon] [refs/heads/develop] - Eliminated IMXMLTagAttributeValue and IMXMLTextValue. Date: Tue, 7 May 2013 22:47:09 +0000 (UTC) Updated Branches: refs/heads/develop 2ecbdebb1 -> 310c37669 Eliminated IMXMLTagAttributeValue and IMXMLTextValue. IMXMLTagAttributeData and IMXMLTextData are sufficient because IMXMLData does not parse entities or databindings. Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/310c3766 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/310c3766 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/310c3766 Branch: refs/heads/develop Commit: 310c37669f1bfe975db741e444730794c4343efa Parents: 2ecbdeb Author: Gordon Smith Authored: Tue May 7 15:45:49 2013 -0700 Committer: Gordon Smith Committed: Tue May 7 15:45:49 2013 -0700 ---------------------------------------------------------------------- .../internal/mxml/MXMLTagAttributeData.java | 119 +++------------ .../internal/mxml/MXMLTagAttributeValue.java | 53 ------- .../flex/compiler/internal/mxml/MXMLTextValue.java | 82 ---------- .../internal/parsing/mxml/MXMLScopeBuilder.java | 11 +- .../flex/compiler/mxml/IMXMLTagAttributeData.java | 8 - .../flex/compiler/mxml/IMXMLTagAttributeValue.java | 43 ----- .../apache/flex/compiler/mxml/IMXMLTextValue.java | 28 ---- 7 files changed, 26 insertions(+), 318 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeData.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeData.java b/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeData.java index e611e46..4a6cd07 100644 --- a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeData.java +++ b/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeData.java @@ -19,7 +19,6 @@ package org.apache.flex.compiler.internal.mxml; -import java.util.ArrayList; import java.util.Collection; import java.util.ListIterator; @@ -31,10 +30,7 @@ import org.apache.flex.compiler.filespecs.IFileSpecification; import org.apache.flex.compiler.internal.parsing.ISourceFragment; import org.apache.flex.compiler.internal.parsing.mxml.MXMLToken; import org.apache.flex.compiler.mxml.IMXMLTagAttributeData; -import org.apache.flex.compiler.mxml.IMXMLTagAttributeValue; import org.apache.flex.compiler.mxml.IMXMLTagData; -import org.apache.flex.compiler.mxml.IMXMLTextValue; -import org.apache.flex.compiler.parsing.IMXMLToken; import org.apache.flex.compiler.parsing.MXMLTokenTypes; import org.apache.flex.compiler.problems.ICompilerProblem; import org.apache.flex.compiler.problems.SyntaxProblem; @@ -87,13 +83,12 @@ public class MXMLTagAttributeData extends SourceLocation implements } // Look for value token - ArrayList values = new ArrayList(3); while (tokenIterator.hasNext()) { token = tokenIterator.next(); if (token.getType() == MXMLTokenTypes.TOKEN_STRING) { - values.add(new MXMLTextValue(token, this)); + valueIncludingDelimiters = token.getText(); } else { @@ -111,19 +106,6 @@ public class MXMLTagAttributeData extends SourceLocation implements break; } } - - this.values = values.toArray(new MXMLTagAttributeValue[0]); - - if (this.values.length > 0) - { - //set the start value - IMXMLTagAttributeValue value = this.values[0]; - valueStart = value.getAbsoluteStart(); - valueLine = value.getLine(); - valueColumn = value.getColumn(); - final int valueEnd = getValueEnd(); - setEnd(valueEnd + 1); - } } /** @@ -132,11 +114,26 @@ public class MXMLTagAttributeData extends SourceLocation implements protected IMXMLTagData parent; /** + * The URI specified by this attribute's prefix. + */ + protected String uri; + + /** * The name of this attribute. */ protected String attributeName; /** + * The offset at which the optional state starts. + */ + protected int stateStart; + + /** + * The attribute value, including any delimiters. + */ + protected String valueIncludingDelimiters; + + /** * The offset at which the attribute value starts */ protected int valueStart; @@ -152,25 +149,10 @@ public class MXMLTagAttributeData extends SourceLocation implements protected int valueColumn; /** - * Array of values inside this attribute data. - */ - private IMXMLTagAttributeValue[] values = new IMXMLTagAttributeValue[0]; - - /** * The name of this state, if it exists */ protected String stateName; - /** - * The offset at which the optional state starts - */ - protected int stateStart; - - /** - * The URI specified by this attribute's prefix. - */ - protected String uri; - // // Object overrides. // @@ -243,14 +225,7 @@ public class MXMLTagAttributeData extends SourceLocation implements } if (hasValue()) - { valueStart += offsetAdjustment; - for (int i = 0; i < values.length; i++) - { - ((MXMLTagAttributeValue)values[i]).setStart(values[i].getAbsoluteStart() + offsetAdjustment); - ((MXMLTagAttributeValue)values[i]).setEnd(values[i].getAbsoluteEnd() + offsetAdjustment); - } - } if (stateName != null) stateStart += offsetAdjustment; @@ -281,13 +256,7 @@ public class MXMLTagAttributeData extends SourceLocation implements @Override public boolean hasValue() { - return values.length > 0; - } - - @Override - public IMXMLTagAttributeValue[] getValues() - { - return values; + return getRawValue() != null; } /** @@ -297,24 +266,7 @@ public class MXMLTagAttributeData extends SourceLocation implements */ public String getValueWithQuotes() { - StringBuilder value = new StringBuilder(); - - final int size = values.length; - IMXMLTagAttributeValue lastData = null; - for (int i = 0; i < size; i++) - { - IMXMLTagAttributeValue data = values[i]; - if (lastData != null) - { - for (int s = 0; s < data.getAbsoluteStart() - lastData.getAbsoluteEnd(); i++) - { - value.append(" "); - } - } - value.append(data.getContent()); - } - - return value.toString(); + return valueIncludingDelimiters; } @Override @@ -345,27 +297,6 @@ public class MXMLTagAttributeData extends SourceLocation implements return EntityProcessor.parse(value, location, mxmlDialect, problems); } - /** - * Returns the value of the raw token (without quotes) only if only one - * value exists and it is a string value New clients should take into - * account that multiple values exist inside of an attribute value - * - * @return a value token, or null - */ - // TODO Rename to getValueToken() - public IMXMLToken getRawValueToken() - { - if (hasState() && values.length == 1 && values[0] instanceof IMXMLTextValue) - { - String value = getRawValue(); - if (value != null) - { - return new MXMLToken(MXMLTokenTypes.TOKEN_STRING, getValueStart() + 1, getValueStart() + 1 + value.length(), -1, -1, value); - } - } - return null; - } - public IFileSpecification getSource() { return getParent().getSource(); @@ -416,14 +347,7 @@ public class MXMLTagAttributeData extends SourceLocation implements public int getValueEnd() { if (hasValue()) - { - String lastContent = values[values.length - 1].getContent(); - - if (lastContent.charAt(0) == lastContent.charAt(lastContent.length() - 1)) - return getValueStart() + lastContent.length() - 2; - - return getValueStart() + lastContent.length(); - } + return getValueStart() + getRawValue().length(); // If there is no valid "end", then we must return -1. Callers depend on this. // See MXMLTagData.findArttributeContainingOffset for an example @@ -482,8 +406,9 @@ public class MXMLTagAttributeData extends SourceLocation implements // it ends with the same quote character, it's well formed. if (hasValue()) { - String lastContent = values[values.length - 1].getContent(); - return (lastContent.charAt(0) == lastContent.charAt(lastContent.length() - 1)); + char firstChar = valueIncludingDelimiters.charAt(0); + char lastChar = valueIncludingDelimiters.charAt(valueIncludingDelimiters.length() - 1); + return (firstChar == '"' || firstChar == '\'') && firstChar == lastChar; } return false; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeValue.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeValue.java b/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeValue.java deleted file mode 100644 index 994cf14..0000000 --- a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTagAttributeValue.java +++ /dev/null @@ -1,53 +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 org.apache.flex.compiler.internal.mxml; - -import org.apache.flex.compiler.common.SourceLocation; -import org.apache.flex.compiler.mxml.IMXMLTagAttributeData; -import org.apache.flex.compiler.mxml.IMXMLTagAttributeValue; - -public abstract class MXMLTagAttributeValue extends SourceLocation implements - IMXMLTagAttributeValue -{ - /** - * Constructor. - */ - public MXMLTagAttributeValue(IMXMLTagAttributeData parent) - { - this.parent = parent; - - if (parent != null) - setSourcePath(parent.getSourcePath()); - } - - /** - * The MXML attribute that contains this unit - */ - private IMXMLTagAttributeData parent; - - // - // Other methods - // - - public IMXMLTagAttributeData getContainingAttribute() - { - return parent; - } -} http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTextValue.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTextValue.java b/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTextValue.java deleted file mode 100644 index 790aa7a..0000000 --- a/compiler/src/org/apache/flex/compiler/internal/mxml/MXMLTextValue.java +++ /dev/null @@ -1,82 +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 org.apache.flex.compiler.internal.mxml; - -import org.apache.flex.compiler.internal.parsing.mxml.MXMLToken; -import org.apache.flex.compiler.mxml.IMXMLTagAttributeData; -import org.apache.flex.compiler.mxml.IMXMLTextValue; -import org.apache.flex.compiler.mxml.IMXMLTextData.TextType; - -public class MXMLTextValue extends MXMLTagAttributeValue implements - IMXMLTextValue -{ - /** - * Constructor. - */ - MXMLTextValue(MXMLToken textToken, IMXMLTagAttributeData parent) - { - super(parent); - setStart(textToken.getStart()); - setEnd(textToken.getEnd()); - setColumn(textToken.getColumn()); - setLine(textToken.getLine()); - text = textToken.getText(); - } - - private String text; - - // - // Object overrides - // - - /** - * For debugging only. This format is nice in the Eclipse debugger. - */ - @Override - public String toString() - { - StringBuilder sb = new StringBuilder(); - - sb.append("|"); - sb.append(getContent()); - sb.append("| "); - sb.append(getLine()); - sb.append(" "); - sb.append(getColumn()); - - return sb.toString(); - } - - // - // IMXMLTextData implementations - // - - @Override - public String getContent() - { - return text; - } - - @Override - public TextType getTextType() - { - return TextType.TEXT; - } -} http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java b/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java index 8722e12..7687710 100644 --- a/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java +++ b/compiler/src/org/apache/flex/compiler/internal/parsing/mxml/MXMLScopeBuilder.java @@ -57,7 +57,6 @@ import org.apache.flex.compiler.internal.workspaces.Workspace; import org.apache.flex.compiler.mxml.IMXMLData; import org.apache.flex.compiler.mxml.IMXMLTagAttributeData; import org.apache.flex.compiler.mxml.IMXMLLanguageConstants; -import org.apache.flex.compiler.mxml.IMXMLTagAttributeValue; import org.apache.flex.compiler.mxml.IMXMLTagData; import org.apache.flex.compiler.mxml.IMXMLTextData; import org.apache.flex.compiler.mxml.IMXMLTextData.TextType; @@ -276,9 +275,8 @@ public class MXMLScopeBuilder if (definitionName == null) { definitionName = attr.getRawValue(); - IMXMLTagAttributeValue[] values = attr.getValues(); - nameStart = values[0].getAbsoluteStart() + 1; //attr.getValueStart(); - nameEnd = values[values.length - 1].getAbsoluteEnd() - 1; // attr.getValueEnd(); + nameStart = attr.getValueStart() + 1; + nameEnd = attr.getValueEnd() - 1; } // TODO create problem if definition name has already been set. } @@ -591,9 +589,8 @@ public class MXMLScopeBuilder if (className == null) { className = attr.getRawValue(); - IMXMLTagAttributeValue[] values = attr.getValues(); - nameStart = values[0].getAbsoluteStart() + 1; //attr.getValueStart(); - nameEnd = values[values.length - 1].getAbsoluteEnd() - 1; // attr.getValueEnd(); + nameStart = attr.getValueStart() + 1; + nameEnd = attr.getValueEnd() - 1; } // TODO create problem if className has already been set. } http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java b/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java index 3c9cf41..899340c 100644 --- a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java +++ b/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeData.java @@ -113,14 +113,6 @@ public interface IMXMLTagAttributeData extends ISourceLocation boolean hasValue(); /** - * Returns an array of {@code IMXMLTagAttributeValue} objects representing - * the various parts of value of this attribute. - * - * @return An array of {@code IMXMLTagAttributeValue} objects. - */ - IMXMLTagAttributeValue[] getValues(); - - /** * Gets the value of this attribute as a String. *

* The delimiting quotes are not included. http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeValue.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeValue.java b/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeValue.java deleted file mode 100644 index 500ce76..0000000 --- a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTagAttributeValue.java +++ /dev/null @@ -1,43 +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 org.apache.flex.compiler.mxml; - -import org.apache.flex.compiler.common.ISourceLocation; -import org.apache.flex.compiler.mxml.IMXMLTextData.TextType; - -/** - * Represents an attribute value in MXML. - */ -public interface IMXMLTagAttributeValue extends ISourceLocation -{ - /** - * Gets the type of text for this part of the attribute value. - * - * @return A {@link TextType} value. - */ - TextType getTextType(); - - /** - * Gets the content of thsi part of the attribute value. - * - * @return The content as a String. - */ - String getContent(); -} http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/310c3766/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextValue.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextValue.java b/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextValue.java deleted file mode 100644 index 117a5bc..0000000 --- a/compiler/src/org/apache/flex/compiler/mxml/IMXMLTextValue.java +++ /dev/null @@ -1,28 +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 org.apache.flex.compiler.mxml; - -/** - * Represents a text attribute value in MXML. - */ -public interface IMXMLTextValue extends IMXMLTagAttributeValue -{ - -}