1 |
// Jericho HTML Parser - Java based library for analysing and manipulating HTML
|
2 |
// Version 3.2
|
3 |
// Copyright (C) 2004-2009 Martin Jericho
|
4 |
// http://jericho.htmlparser.net/
|
5 |
//
|
6 |
// This library is free software; you can redistribute it and/or
|
7 |
// modify it under the terms of either one of the following licences:
|
8 |
//
|
9 |
// 1. The Eclipse Public License (EPL) version 1.0,
|
10 |
// included in this distribution in the file licence-epl-1.0.html
|
11 |
// or available at http://www.eclipse.org/legal/epl-v10.html
|
12 |
//
|
13 |
// 2. The GNU Lesser General Public License (LGPL) version 2.1 or later,
|
14 |
// included in this distribution in the file licence-lgpl-2.1.txt
|
15 |
// or available at http://www.gnu.org/licenses/lgpl.txt
|
16 |
//
|
17 |
// This library is distributed on an "AS IS" basis,
|
18 |
// WITHOUT WARRANTY OF ANY KIND, either express or implied.
|
19 |
// See the individual licence texts for more details.
|
20 |
|
21 |
package net.htmlparser.jericho;
|
22 |
|
23 |
final class StartTagTypeMasonNamedBlock extends StartTagTypeGenericImplementation {
|
24 |
protected static final StartTagTypeMasonNamedBlock INSTANCE=new StartTagTypeMasonNamedBlock();
|
25 |
|
26 |
private StartTagTypeMasonNamedBlock() {
|
27 |
super("mason named block","<%",">",EndTagTypeMasonNamedBlock.INSTANCE,true,false,true);
|
28 |
}
|
29 |
|
30 |
protected Tag constructTagAt(final Source source, final int pos) {
|
31 |
final Tag tag=super.constructTagAt(source,pos);
|
32 |
if (tag==null) return null;
|
33 |
// A mason named block does not have a '%' before its closing '>' delimiter and requires a matching end tag.
|
34 |
if (source.charAt(tag.getEnd()-2)=='%') return null; // this is a common server tag, not a named block
|
35 |
if (source.getNextEndTag(tag.getEnd(),tag.getName(),getCorrespondingEndTagType())==null) return null;
|
36 |
return tag;
|
37 |
}
|
38 |
}
|