All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tangosol.coherence.dslquery.token.persistence.SQLRemoveSnapshotOPToken Maven / Gradle / Ivy

There is a newer version: 24.09
Show newest version
/*
 * Copyright (c) 2000, 2020, Oracle and/or its affiliates.
 *
 * Licensed under the Universal Permissive License v 1.0 as shown at
 * http://oss.oracle.com/licenses/upl.
 */
package com.tangosol.coherence.dslquery.token.persistence;

import com.tangosol.coherence.dslquery.CohQLException;
import com.tangosol.coherence.dslquery.token.SQLOPToken;
import com.tangosol.coherence.dsltools.precedence.OPException;
import com.tangosol.coherence.dsltools.precedence.OPParser;
import com.tangosol.coherence.dsltools.precedence.OPScanner;
import com.tangosol.coherence.dsltools.termtrees.AtomicTerm;
import com.tangosol.coherence.dsltools.termtrees.Term;
import com.tangosol.coherence.dsltools.termtrees.Terms;

/**
 * SQLRemoveSnapshotOPToken is used for parsing and specifying the AST
 * used for creating snapshots.
 * 

* Syntax: *

* REMOVE [ARCHIVED] SNAPSHOT 'snapshot-name' 'service' * * @author tam 2014.08.04 */ public class SQLRemoveSnapshotOPToken extends SQLOPToken { // ----- constructors -------------------------------------------------- /** * Construct a new SQLListServicesOPToken. * * @param id the string representing the command */ public SQLRemoveSnapshotOPToken(String id) { super(id, IDENTIFIER_NODE); } // ----- Operator Precedence API ---------------------------------------- @Override public Term nud(OPParser p) { OPScanner s = p.getScanner(); boolean fArchived = false; if (s.advanceWhenMatching("archived")) { fArchived = true; } if (s.advanceWhenMatching("snapshot")) { if (s.isEndOfStatement()) { throw new CohQLException("Snapshot name required for REMOVE SNAPSHOT"); } Term termSnapshot = Terms.newTerm("snapshotname", AtomicTerm.createString(s.getCurrentAsStringWithAdvance())); if (s.isEndOfStatement()) { throw new OPException("Service name required for REMOVE SNAPSHOT"); } Term termService = Terms.newTerm("service", AtomicTerm.createString(s.getCurrentAsStringWithAdvance())); Term termArchive = Terms.newTerm("archived", AtomicTerm.createString(fArchived ? "true" : "false")); return Terms.newTerm(FUNCTOR, termSnapshot, termService, termArchive); } else { throw new OPException("Expected SNAPSHOT but found " + s.getCurrentAsString()); } } // ----- constants ------------------------------------------------------ /** * The functor name used to represent this node in an AST */ public static final String FUNCTOR = "sqlRemoveSnapshot"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy