ftp.nice.ch/pub/next/developer/languages/java/guavac.0.2.5.s.tar.gz#/guavac-0.2.5/common/JavaMethodSignature.h

This is JavaMethodSignature.h in view mode; [Download] [Up]

// $Id: JavaMethodSignature.h,v 1.4 1996/04/18 02:17:50 geppetto Exp $
// Copyright (c) 1995  David Engberg  All rights reserved
#ifndef _JavaMethodSignature_h
#define _JavaMethodSignature_h

#include "JavaTypeSignature.h"
#include <deque.h>
class ostream;

//
//  Class name : CJavaMethodSignature
//  Description : This class is similar to CJavaTypeSignature, but it
//    represents the signature for a function.  This includes the
//    arguments and the return value.
//    In the Java bytecode specification, this is represented as a compressed
//    string that looks like "(IC)LMyClass;" or something like that.  This
//    class is provided to encapsulate that string and allow it to only
//    be parsed once.
//    The 'Initialize' function must be called successfully on this object
//    before it is valid for use.
//
class CJavaMethodSignature {
public:
  CJavaMethodSignature();
  CJavaMethodSignature(const CJavaTypeSignature& returnType,
		       const unicode_string& name,
		       const deque<CJavaTypeSignature>& argumentTypes);
  CJavaMethodSignature(const CJavaMethodSignature& source);
  ~CJavaMethodSignature();
  CJavaMethodSignature& operator=(const CJavaMethodSignature& source);
  bool operator==(const CJavaMethodSignature& other) const;
  bool operator<(const CJavaMethodSignature& other) const;
  int Compare(const CJavaMethodSignature& other) const;
  bool EqualsIgnoreReturn(const CJavaMethodSignature& other) const;
  
  bool Initialize(const unicode_string& methodName,
		  const unicode_string& signatureString);

  unsigned long Hash() const { return fHashKey; }
  void Disassemble(ostream& toStream) const;
  unicode_string Disassemble() const;
  string CompileType() const;

  unicode_string GetName() const { return fMethodName; }
  CJavaTypeSignature GetType() const { return fReturnType; }
  deque<CJavaTypeSignature>::const_iterator ParametersBegin() const;
  deque<CJavaTypeSignature>::const_iterator ParametersEnd() const;
  unsigned long ParameterCount() const { return fArgumentTypes.size(); }
private:
  void SetHashKey();

  unicode_string fMethodName;
  deque<CJavaTypeSignature> fArgumentTypes;
  CJavaTypeSignature fReturnType;
  unsigned long fHashKey;
};

#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.