blob: 1dc51801f3af39c11172b5313dd39fff7789332e [file] [log] [blame]
/*
* 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.jena.sparql.algebra.op;
import org.apache.jena.atlas.io.IndentedWriter ;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.serializer.SerializationContext ;
import org.apache.jena.sparql.sse.writers.WriterOp ;
import org.apache.jena.sparql.util.NodeIsomorphismMap ;
import org.apache.jena.sparql.util.PrintSerializableBase ;
public abstract class OpBase extends PrintSerializableBase implements Op
{
@Override
public abstract int hashCode() ;
@Override
public abstract boolean equalTo(Op other, NodeIsomorphismMap labelMap) ;
@Override
final public boolean equals(Object other)
{
if ( other == null ) return false;
if ( this == other ) return true ;
if ( ! ( other instanceof Op ) )
return false ;
return equalTo((Op)other, null) ;
}
@Override
public void output(IndentedWriter out)
{
output(out, null) ;
}
@Override
public void output(IndentedWriter out, SerializationContext sCxt)
{
int line = out.getRow() ;
WriterOp.output(out, this, sCxt) ;
if ( line != out.getRow() )
out.ensureStartOfLine() ;
}
// Constants used in hashing to stop an element and it's subelement
// (if just one) having the same hash. That isn't usualy any problem but
// it's easy to avoid so we do.
static final int HashBasicGraphPattern = 0xB1 ;
// static final int HashGroup = 0xB2 ;
// static final int HashUnion = 0xB3 ;
// static final int HashLeftJoin = 0xB4 ;
static final int HashDistinct = 0xB5 ;
static final int HashReduced = 0xB5 ;
static final int HashToList = 0xB6 ;
static final int HashNull = 0xB7 ;
static final int HashSequence = 0xB8 ;
static final int HashLabel = 0xB9 ;
static final int HashTriple = 0xBA ;
static final int HashQuad = 0xBB ;
static final int HashQuadBlock = 0xBC ;
}