home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html.parser;
-
- class ContentModelState {
- ContentModel model;
- long value;
- ContentModelState next;
-
- ContentModelState(Object var1, ContentModelState var2) {
- this(var1, var2, 0L);
- }
-
- ContentModelState(Object var1, ContentModelState var2, long var3) {
- this.model = (ContentModel)var1;
- this.next = var2;
- this.value = var3;
- }
-
- public ContentModelState(ContentModel var1) {
- this(var1, (ContentModelState)null, 0L);
- }
-
- public ContentModelState advance(Object var1) {
- switch (this.model.type) {
- case 38:
- ContentModel var6 = (ContentModel)this.model.content;
- boolean var7 = true;
-
- for(int var4 = 0; var6 != null; var6 = var6.next) {
- if ((this.value & 1L << var4) == 0L) {
- if (var6.first(var1)) {
- return (new ContentModelState(var6, new ContentModelState(this.model, this.next, this.value | 1L << var4))).advance(var1);
- }
-
- if (!var6.empty()) {
- var7 = false;
- }
- }
-
- ++var4;
- }
-
- if (var7) {
- if (this.next != null) {
- return this.next.advance(var1);
- }
-
- return null;
- }
- break;
- case 42:
- if (this.model.first(var1)) {
- return (new ContentModelState(this.model.content, this)).advance(var1);
- }
-
- if (this.next != null) {
- return this.next.advance(var1);
- }
-
- return null;
- case 43:
- if (this.model.first(var1)) {
- return (new ContentModelState(this.model.content, new ContentModelState(this.model, this.next, this.value + 1L))).advance(var1);
- }
-
- if (this.value != 0L) {
- if (this.next != null) {
- return this.next.advance(var1);
- }
-
- return null;
- }
- break;
- case 44:
- ContentModel var5 = (ContentModel)this.model.content;
-
- for(int var3 = 0; (long)var3 < this.value; var5 = var5.next) {
- ++var3;
- }
-
- if (var5.first(var1) || var5.empty()) {
- if (var5.next == null) {
- return (new ContentModelState(var5, this.next)).advance(var1);
- }
-
- return (new ContentModelState(var5, new ContentModelState(this.model, this.next, this.value + 1L))).advance(var1);
- }
- break;
- case 63:
- if (this.model.first(var1)) {
- return (new ContentModelState(this.model.content, this.next)).advance(var1);
- }
-
- if (this.next != null) {
- return this.next.advance(var1);
- }
-
- return null;
- case 124:
- for(ContentModel var2 = (ContentModel)this.model.content; var2 != null; var2 = var2.next) {
- if (var2.first(var1)) {
- return (new ContentModelState(var2, this.next)).advance(var1);
- }
- }
- break;
- default:
- if (this.model.content == var1) {
- return this.next;
- }
- }
-
- return null;
- }
-
- public Element first() {
- switch (this.model.type) {
- case 38:
- case 42:
- case 63:
- case 124:
- return null;
- case 43:
- return this.model.first();
- case 44:
- ContentModel var1 = (ContentModel)this.model.content;
-
- for(int var2 = 0; (long)var2 < this.value; var1 = var1.next) {
- ++var2;
- }
-
- return var1.first();
- default:
- return this.model.first();
- }
- }
-
- public ContentModel getModel() {
- ContentModel var1 = this.model;
-
- for(int var2 = 0; (long)var2 < this.value; ++var2) {
- if (var1.next == null) {
- return null;
- }
-
- var1 = var1.next;
- }
-
- return var1;
- }
-
- public boolean terminate() {
- switch (this.model.type) {
- case 38:
- ContentModel var4 = (ContentModel)this.model.content;
-
- for(int var5 = 0; var4 != null; var4 = var4.next) {
- if ((this.value & 1L << var5) == 0L && !var4.empty()) {
- return false;
- }
-
- ++var5;
- }
-
- return this.next == null || this.next.terminate();
- case 43:
- if (this.value == 0L && !this.model.empty()) {
- return false;
- }
- case 42:
- case 63:
- return this.next == null || this.next.terminate();
- case 44:
- ContentModel var3 = (ContentModel)this.model.content;
-
- for(int var2 = 0; (long)var2 < this.value; var3 = var3.next) {
- ++var2;
- }
-
- while(var3 != null && var3.empty()) {
- var3 = var3.next;
- }
-
- if (var3 != null) {
- return false;
- }
-
- return this.next == null || this.next.terminate();
- case 124:
- for(ContentModel var1 = (ContentModel)this.model.content; var1 != null; var1 = var1.next) {
- if (var1.empty()) {
- return this.next == null || this.next.terminate();
- }
- }
-
- return false;
- default:
- return false;
- }
- }
- }
-